android – 检测服务崩溃

前端之家收集整理的这篇文章主要介绍了android – 检测服务崩溃前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个服务,onStartCommand()与此类似:

private User user;

@Override
public int onStartCommand(@Nullable final Intent intent,final int flags,final int startId) {
    if (user == null) {
        user = UserList.getInstance().getSpecialUser();
    }
    Assert.assertNotNull(user);

    //
    // Build notification here,SEOmehow based on user object
    //
    startForeground(42,notification);

    return START_STICKY;
}

显然,我希望我的服务在前台运行,并尽可能长时间运行.

这很有效,直到我的应用程序崩溃到其网络类的深处.当发生时,是否显示应用程序崩溃对话框,用户确认它,重新创建整个应用程序,还重新创建服务,但UserList现在为空,因此getSpecialUser()返回null并且Assert再次使用该应用程序. Android在主屏幕中放弃和用户结束.

有没有办法检测崩溃,这将使我能够更优雅地处理这种情况?

最佳答案
在您的应用程序中创建一个uncaughtExceptionHandler

public class MyApplication extends android.app.Application{

    @Override
    public void onCreate() {
        super.onCreate();

        Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

            @Override
            public void uncaughtException(Thread arg0,Throwable arg1) {
                doSomething();
            }
        });
    }
}

猜你在找的Android相关文章