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