0

当用户从最近的应用程序屏幕中删除应用程序时,我希望我的应用程序继续运行。

当前场景:

活动堆栈:A --> B --> C(前台服务从此活动开始)。现在,如果用户从最近的应用程序屏幕中删除应用程序,则服务会继续运行,但活动 A、B 和 C 将被终止。现在,如果用户启动应用程序,则启动活动 A。

所需结果:

我希望应用程序直接从活动 C开始,其状态为之前被杀死之前的状态。

我将不胜感激有关此主题的任何建议和想法。谢谢你。

4

1 回答 1

1

这是您可以尝试的附近解决方案..可能会有所帮助。您可以使用应用程序类的方法,您可以在其中跟踪当前正在运行的活动。为了打开最后一个活动,在下面的方法中维护和保存SharedPreferences活动暂停/或创建(无论工作)的变量。

private void setupActivityListener() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                if (activity instanceof MainActivity) {
                    Log.e(TAG, "**************** MainActivity Created *******************");

                }
                //Log.e(TAG, "**************** onActivityCreated *******************");
            }

            @Override
            public void onActivityStarted(Activity activity) {
                //Log.e(TAG, "**************** onActivityStarted *******************");
            }

            @Override
            public void onActivityResumed(Activity activity) {
                CancelNotification();
                activeActivity = activity;
                //Log.e(TAG, "**************** onActivityResumed *******************");
            }

            @Override
            public void onActivityPaused(Activity activity) {
                activeActivity = null;
                //Log.e(TAG, "**************** onActivityPaused *******************");
            }

            @Override
            public void onActivityStopped(Activity activity) {
                //Log.e(TAG, "**************** onActivityStopped *******************");
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
            }

            @Override
            public void onActivityDestroyed(Activity activity) {
                if (activity instanceof MainActivity) {
                    Log.e(TAG, "**************** MainActivity Destroyed *******************");

                }
            }
        });
    }

当打开应用程序时,在启动时检查最后一个活动是什么......如果它不是 MainActivity 然后重定向到所需的活动......

对于状态,您可以将其保存到捆绑包或其他一些来源.. 就像在 sharedpreferenceance 中一样。

于 2018-06-02T05:42:50.660 回答