我对Android活动有疑问。
我有我的第一个登录屏幕(MainActivity),然后从那里转到Secondscreen,现在当我从秒屏幕按下退出按钮我要关闭应用程序(或android主屏幕),然后下次打开我要启动的应用程序应用秒屏。
我在第二个屏幕上尝试了这个代码,但它无法正常工作
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_ESCAPE)
{
//My logic here
return true;
}
return false;
}
答案 0 :(得分:1)
首次使用该应用程序时,使用LoginScreen启动, 然后调用finish()。还存储共享首选项以了解该内容 应用程序至少使用一次(登录)
由于您已完成登录屏幕,当您在SecondScreen上按后退按钮时,您将进入设备主页,而不是登录屏幕。
下次要启动应用程序时,请检查sharedPreference是否已登录用户,并在onCreate
<强> LoginScreenActivity:强>
onCreate(){
//check shared preference if logged in
if(yes){
startActivity(new Intent(Login.this, Second.class));
finish();
}else{
//do all the login here then,
//set sharedPreference
startActivity(new Intent(Login.this, Second.class));
finish();
}
}
答案 1 :(得分:0)
当您开始第二项活动时,使用finish()
例如
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
finish();
此代码将完成您当前的活动,当您在第二个活动中按下后退按钮时,应用程序将关闭。
答案 2 :(得分:0)
在登录活动中,在启动第二个活动后调用完成。
startActivity(i);
finish();
现在如果你按回来它应该关闭应用程序,当你再次启动应用程序时,第二个活动将是可见的。
答案 3 :(得分:0)
有两种方法可以做到:
在android menifest活动定义中使用“noHistory = true”登录活动。
<activity android:name="YOUR_FIRST_ACTIVITY"
android:label="FIRST_ACTIVITY"
android:noHistory="true" />
您可以在开始第二项活动时完成()第一项活动。
startActivity(SECOND_ACTIVITY_INTENT);
FIRST_ACTIVITY.this.finish();
希望它会对你有所帮助。
答案 4 :(得分:0)
我认为你正在尝试下面的事情:
首次安装#
LoginScreen&gt; SecondScreen,当您按下escape时,它将关闭整个应用程序。
第二次#
当您打开应用程序时,它将从第二个屏幕开始,而不是loginScreen。
<强>解决方案强>
阶段1#
首次登录时将您的登录信息存储在database or sharepreference
,并在打开第二个屏幕时将finish()
登录屏幕保存。
相位2#
当你第二次打开你的应用check your login info
时,如果它存在,那么重定向到第二个活动,否则打开loginScreen
。