android 应用自动重启,Android 应用崩溃后自动重启的方法
public class HKApplication extends Application {
private List activityList = new ArrayList();
@Override
public void onCreate() {
super.onCreate();
// 以下用來捕獲程序崩潰異常
if (!Config.debug) {
Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩潰時觸發線程
}
}
// 創建服務用于捕獲崩潰異常
private UncaughtExceptionHandler restartHandler = new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
restartApp();//發生崩潰異常時,重啟應用
}
};
// activity管理:從列表中移除activity
public void removeActivity(Activity activity) {
activityList.remove(activity);
}
// activity管理:添加activity到列表
public void addActivity(Activity activity) {
activityList.add(activity);
}
// activity管理:結束所有activity,徹底關閉應用
public void finishProgram() {
for (Activity activity : activityList) {
if (null != activity) {
activity.finish();
}
}
android.os.Process.killProcess(android.os.Process.myPid());
}
// activity管理:結束所有activity
public void finishAllActivity() {
for (Activity activity : activityList) {
if (null != activity) {
activity.finish();
}
}
}
// 重啟應用
public void restartApp() {
Intent intent = new Intent();
// 參數1:包名,參數2:程序入口的activity
intent.setClassName(getPackageName(), "com.hk.shop.WelcomeActivity");
PendingIntent restartIntent = PendingIntent.getActivity(
getApplicationContext(), 0, intent,
Intent.FLAG_ACTIVITY_NEW_TASK);
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000,
restartIntent); // 1秒鐘后重啟應用
finishProgram(); // 自定義方法,關閉當前打開的所有avtivity
}
}
在配置文件中將我們默認的 application 更改為自己擴展的application
7. android:name=".MyApplication"> 就是這兒,將我們以前一直用的默認Application給他設置成我們自己做的HKApplication
轉發轉發來自:http://zheyiw.iteye.com/blog/1670609
總結
以上是生活随笔為你收集整理的android 应用自动重启,Android 应用崩溃后自动重启的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx文件服务器密码登录,风的方向
- 下一篇: java 1%10_Java获取随机数的