应用程序终止后从上一个Activity运行应用程序

时间:2016-01-24 22:36:53

标签: android android-intent android-activity

在我的应用中,我有3项活动:

1项活动: 它正在开始活动

在清单中:

<activity android:name=".First">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

2活动: 这是登录屏幕活动。

3活动: 正确登录后显示活动。

在清单中:

<activity android:name=".Third">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

在3.活动中我有按钮注销。当我点击退出按钮。应用程序将进入活动2.并在重新启动后(杀死应用程序并重新启动)。应用程序从1.活动开始。这是正确的。

但是当我没有点击退出按钮并重新启动(杀死应用程序并再次启动)时。应用必须从3活动开始(用户必须仍然登录)。

可能我应该操纵意图标志。

1 个答案:

答案 0 :(得分:0)

您可以使用活动2成功登录SharedPreferences AFTER 中的键值对。

然后在您的活动1中检查键值对是否存在,如果存在,则转到活动3,如果不存在,则转到活动2。

示例:

Activity2.java (成功登录后)

SharedPreferences sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);  
Editor editor = sharedpreferences.edit();
editor.putString("user_logged_in", "true");
editor.apply();

Activity1.java (启动时)

SharedPreferences sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
String isLogged = sharedpreferences.getString("user_logged_in", "not_logged"
if (isLogged.equals("true"))){
  //User logged in. Go to Activity 3
}else{
  //User NOT logged in. Go to Activity 2
}

此外,请确保在注销时清除SharedPreferences中的密钥。

这是一个教程,它可能会有所帮助:

http://www.tutorialspoint.com/android/android_session_management.htm