Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在最后使用的屏幕上打开应用程序_Java_Android_Android Studio_Android Intent - Fatal编程技术网

Java 在最后使用的屏幕上打开应用程序

Java 在最后使用的屏幕上打开应用程序,java,android,android-studio,android-intent,Java,Android,Android Studio,Android Intent,每当我单击我的应用程序图标时,它总是在登录屏幕上打开,即使我之前已经在另一个页面上打开过它,即使我只是返回到应用程序的主屏幕,单击应用程序也会返回登录页面。我想知道是否可以保证它将始终在我停止的最后一个屏幕上打开,除非我已完全退出应用程序。为此,您可以使用共享首选项。每次用户停止应用程序时,您都应该将活动的名称存储在内存中,以便下次打开应用程序时,您可以读取文件并检查以前使用过的活动。 写入文件: SharedPreferences sharedpreferences = getSharedPr

每当我单击我的应用程序图标时,它总是在登录屏幕上打开,即使我之前已经在另一个页面上打开过它,即使我只是返回到应用程序的主屏幕,单击应用程序也会返回登录页面。我想知道是否可以保证它将始终在我停止的最后一个屏幕上打开,除非我已完全退出应用程序。

为此,您可以使用共享首选项。每次用户停止应用程序时,您都应该将活动的名称存储在内存中,以便下次打开应用程序时,您可以读取文件并检查以前使用过的活动。 写入文件:

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);    
对于每个活动,请覆盖此方法:

@override
public void onDestroy() {
    Editor editor = sharedpreferences.edit();
    editor.putString("LastOpened", "activity_name");
    editor.apply();
}
要在以前销毁的活动中打开应用程序,请在登录活动中写入以下内容:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("LastOpened", "");
switch(name) {
    case "LoginActivity": {
        //do nothing
    }
    case "OtherActivity" : {
        startActivity(new Intent(this, OtherActivity.class));
    ....
}

使用。如果您没有在清单中使用任何特殊的启动模式,这是标准的Android行为。如果您遇到此问题,您可能会看到这个讨厌的Android错误:要验证,请在手机上安装应用程序,然后强制关闭应用程序(设置->应用程序->应用程序->强制关闭),然后从主屏幕单击图标启动应用程序,转到另一个
活动
,按HOME,从主屏幕再次启动应用程序,它应该可以工作。只有在您想在几天或几周不使用后返回到停止使用的位置时,才需要使用
SharedReferences
。一般来说,这不是必要或可取的行为。