4
我想在我的應用中實現登錄屏幕並尋找最佳實踐。 假設此代碼:實施登錄(auth)屏幕的最佳做法是什麼?
public class LoginActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_login);
Button btnLogin=(Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});
}
}
public class MainActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_main);
Button btnLogout=(Button)findViewById(R.id.btnLogout);
btnLogout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
這將爲第一個應用程序運行的工作,我會記住的密碼。但下一次,當應用程序存儲中已存在密碼時,我不想顯示LoginActivity。所以,我唯一的解決方案:
public class LoginActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_login);
Button btnLogin=(Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});
//consider that passwodExists() looks for credentials
if(passwodExists()){
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
}
}
這是可以接受的嗎?
- 你會用什麼來解決這個問題?
- 從onCreate()開始Activity或顯示對話框是否安全?
你對後退按鈕有什麼意義? – 2011-06-10 21:43:41
好吧,如果有人在他們的設備上使用後退按鈕,它會(默認情況下)將他們帶到之前的活動,即您的MainActivity。 http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html – 2011-06-10 21:44:56
在開始下一個活動之前,我在當前的一箇中調用finish(),所以它不在'Activity stack'中。我認爲一切都好,或者我錯過了什麼? – 2011-06-10 21:49:59