当应用程序被杀死时如何打开主活动?

4

A = 主Activity
B = 某个Activity

  1. 正常情况
    A > B > 主页按钮 > B

  2. 应用程序被杀死的情况
    A > B > 主页按钮 > 空闲一段时间 > 应用被杀死 > 再次打开应用 > A

我该如何做到像第二种情况?

附注:我尝试在清单文件中添加android:launchMode="singleTask"。它总是从A开始,但我只想在第二种情况下(应用程序被杀死)从A开始。


当您点击主页按钮时,如果是第二种情况,则应用程序不会被杀死,而是您的活动会暂停(在后台),并在返回到应用程序时恢复。可以同时在后台执行多个任务。但是,如果用户同时运行许多后台任务,则系统可能会开始销毁后台活动以恢复内存,从而导致活动状态丢失。因此,在您的情况下,我猜测您的活动B正在恢复。 - Raghunandan
你想在按下主屏幕按钮后一定时间内关闭应用吗? - William Kinaan
我认为Android的默认行为正是你想要的。 - waqaslam
@Raghunandan 是的,这是正常情况,但当我按Home键并通过任务管理器杀死进程后,再次运行应用程序时,它会进入onCreate() Activity B,但我希望应用程序进入Activity A。我该怎么办? - Teeranai.P
1个回答

4

在您的Application类中使用以下代码。该代码将自动将您的应用程序重定向到所需页面,即使它被杀死。

public class MYAppApplication extends Application {

    Context context;



    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();


        context=this;

        MySafetyMethod();
    }


    private void MySafetyMethod() {
        // TODO Auto-generated method stub
        Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

            @Override
            public void uncaughtException(Thread thread, Throwable ex) {                

                System.out.println("inside the process of handling exceptions");
                System.err.println("inside the process of handling exceptions");
                ex.printStackTrace();
                System.exit(2);

                startActivity(new Intent(context, YourActivity.class)); 

            }
        });
    }


}

希望这可以帮助您。同时,请不要忘记在您的清单文件中提及应用程序名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接