应用程序强制关闭时如何重新启动应用程序

Posted

技术标签:

【中文标题】应用程序强制关闭时如何重新启动应用程序【英文标题】:How to Relaunch application when app gets force closed 【发布时间】:2015-08-24 01:03:02 【问题描述】:

我需要为用户提供重新启动的选项 每当应用程序被强制关闭而不返回主页时,应用程序。

可以吗??

我想确定 有没有可能??

实际上是客户的要求。

【问题讨论】:

android App Restarts upon Crash/force close 的可能重复项 【参考方案1】:

是的,这是可能的。

在您的应用程序类中调用onCreate 中的以下设置。

Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);



    private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() 
    @Override
    public void uncaughtException(Thread thread, Throwable ex) 

        Intent intent = getPackageManager().getLaunchIntentForPackage("Your packagename");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);

        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);

    
;

此方法将捕获您的代码引发的所有未捕获的异常并重新启动您的应用程序而不会发生任何崩溃。

【讨论】:

OP 不是在谈论崩溃,而是强制关闭活动。强制关闭会引发异常吗?【参考方案2】:

是的,您可能只需要执行以下 2 个步骤..

第 1 步:- 创建一个类为 MyCrashHandler as

 public static class MyCrashHandler implements Thread.UncaughtExceptionHandler 
        @Override
        public void uncaughtException(Thread thread, Throwable ex) 
            //Handle your crash here...Show dialog etc..
            ex.printStackTrace();
        
    

第 2 步:- 现在您需要在 Activity 中注册此崩溃处理程序,作为

Thread.currentThread().setDefaultUncaughtExceptionHandler(new MyCrashHandler ());

【讨论】:

以上是关于应用程序强制关闭时如何重新启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

当设备重新启动并强制关闭应用程序时,Redmi 和其他自定义中文 ROM 中未收到 WorkManager doWork 回调

如何在MSI Installshield重新启动管理器对话框中禁用“不关闭应用程序”选项

Ipad 锁定/关闭后重新启动 ios 应用程序

当应用程序在android上关闭时如何阻止重新启动服务?

当应用程序关闭并重新启动时,如何继续上一个活动?

关闭并重新打开应用程序时Android崩溃