gpt4 book ai didi

android - 重新启动时如何使android应用程序返回上一个打开的 Activity ?

转载 作者:IT王子 更新时间:2023-10-29 00:04:00 27 4
gpt4 key购买 nike

是否可以配置一个 android 应用程序,以便如果用户打开您的应用程序,启动了许多 Activity ,然后返回主屏幕并再次重新启动您的应用程序,而不是转到主要 Activity ,他们将被带到堆栈中最高的 Activity (您的应用中最近的 Activity )?

最佳答案

当通过主屏幕上的图标启动时,Android 将始终使用 AndroidManifest.xml 中的 android.intent.action.MAIN 过滤器启动 Activity,除非应用程序已经在运行(在这种情况下,它显然会恢复堆栈顶部的 Activity )。

要实现您所描述的,您可以简单地将最后一个可见 Activity 存储在 SharedPreferences 中,并有一个 Dispatcher Activity 根据偏好启动最后一个 Activity 。

因此,在您希望自动重新启动的每个 Activity 中:

@Override
protected void onPause() {
super.onPause();

SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("lastActivity", getClass().getName());
editor.commit();
}

还有一个类似于下面的Dispatcher Activity :

public class Dispatcher extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Class<?> activityClass;

try {
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
activityClass = Class.forName(
prefs.getString("lastActivity", Activity1.class.getName()));
} catch(ClassNotFoundException ex) {
activityClass = Activity1.class;
}

startActivity(new Intent(this, activityClass));
}
}

备注

  • 您可以为 onPause 覆盖创建一个基类
  • Dispatcher Activity 显然需要是 android.intent.action.MAIN Action

关于android - 重新启动时如何使android应用程序返回上一个打开的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441203/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com