0

我有一个关于 android 活动的问题。

我有我的第一个登录屏幕(MainActivity),然后从那里转到 Secondscreen,现在当我从 secondscreen 按下退出按钮时,我想关闭应用程序(或 android 主屏幕),下次打开应用程序我想用 secondscreen 启动应用程序.

我在第二个屏幕上尝试了此代码,但它不起作用

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;
}
4

5 回答 5

1
  1. 第一次使用应用程序时,从 LoginScreen 开始,然后调用 finish()。还存储一个共享首选项以知道该应用程序至少使用一次(登录)

  2. 由于您完成了 LoginScreen,当您按下 SecondScreen 上的返回按钮时,您将来到设备主页,而不是 LoginScreen。

  3. 下次要启动应用程序时,检查sharedPreference是否用户已登录,并在onCreate开始时完成LoginScreen

登录屏幕活动:

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();
}

}
于 2013-02-06T05:28:41.527 回答
0

当你开始你的第二个活动时,完成现有的活动finish()

例子

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
finish();

此代码将完成您当前的活动,当您在第二个活动中按下返回按钮时,应用程序将关闭。

于 2013-02-06T05:20:02.387 回答
0

在开始第二个活动后登录活动调用完成。

startActivity(i);
finish();

现在,如果您按回它应该关闭应用程序,当您再次启动应用程序时,第二个活动将可见。

于 2013-02-06T05:25:14.973 回答
0

有两种方法可以做到这一点:

  1. 在 android 清单活动定义中使用“noHistory=true”进行登录活动。

    <activity android:name="YOUR_FIRST_ACTIVITY"
    android:label="FIRST_ACTIVITY"
    android:noHistory="true" />
    
  2. 您可以在开始第二个活动时完成()第一个活动。

    startActivity(SECOND_ACTIVITY_INTENT);
    FIRST_ACTIVITY.this.finish();
    

希望它会帮助你。

于 2013-02-06T05:29:44.930 回答
0

我假设您正在尝试以下内容:

首次安装#

LoginScreen>SecondScreen,当您按下退出键时,它将关闭整个应用程序。

第二次#

当您打开应用程序时,它将从第二个屏幕而不是 loginScreen 开始。

解决方案

阶段1#

database or sharepreference首次登录时存储您的登录信息,并finish()在打开第二个屏幕时存储登录屏幕。

阶段2#

当您第二次打开您的应用程序时check your login info,如果它存在,则重定向到第二个活动 else open loginScreen

于 2013-02-06T05:35:36.483 回答