2012-04-02 44 views
-2

我开发了一个应用程序,它使用了一些外部的开源项目。现在我已经确定没有应用程序会强制关闭的地方。不过,我不想冒险考虑外部的开源应用程序。我想确保如果我的应用程序部队关闭,我从一开始就重新启动应用程序。android-重启应用程序强行关闭

我通过网络搜索解决方案,我能找到的最好的是here。但我真的不明白如何实现它...

我见过很多应用程序打开第一个屏幕强制关闭,所以你能给我一些帮助吗?

回答

0

我假设你的意思是服务。如果你有一个永远在场的应用程序,我会恨你。但对于一项服务,只需从START_STICKY标志开始。

public MyAmazingService extends Service { 
    @Override public int onStartCommand(Intent intent, int arg1, int arg2) { 
     // Doing some amazing stuff 
     return START_STICKY; 
    } 
} 
+0

我猜他只是想保住自己的活动活着的时候,它是由一个异常关闭...你说得对,如果里面有一个bug他第一个活动,这可能会导致“无限循环” – 2012-04-02 15:17:46

+0

@RafaelT这将是一个比我更好的假设。好,先生。 – AedonEtLIRA 2012-04-02 15:19:50

+0

没有它的服务我是说话回合....在意外的力量关闭方面,我想关闭应用程序并重新启动它。 – Vivekanand 2012-04-02 15:55:13

2

您发布的链接是做它的方式。如果您尚未添加Android Application,最好的方法就是加入。注册一个UncaughtExceptionHandler内您的应用程序onCreate方法就像这样:

//Inside your ApplicationClass 
public void onCreate(){ 
    Log.v("MyApplication", "onCreate triggered") 
    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(){ 
     public void uncaughtException(Thread thread, Throwable ex){ 
      Log.v("MyApplication", "onUncaughtException triggered. Error:") 
      ex.printStackTrace() 
      //restart your app here like this 
      Intent i = new Intent(this, TheClassYouWannaStart.class); 
      getApplicationContext().startActivity(i); 
     } 
    }); 
} 
+0

以及我想知道这是不是工作.. – Vivekanand 2012-04-02 16:04:08

+0

你确认Apllications.onCreate运行?把一个日志里面像我的更新的答案,并检查它内部DDMS – 2012-04-02 16:07:15

+0

@vivek你真的把它放到应用程序类或活动?这在活动中不起作用。 – AedonEtLIRA 2012-04-02 16:07:48