国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android 應(yīng)用Crash 后自動(dòng)重啟的方法小結(jié)

瀏覽:2日期:2022-09-23 16:40:18

前提

首先,我們肯定要在Application里面注冊(cè)一個(gè)CrashHandler,監(jiān)聽(tīng)?wèi)?yīng)用crash

public class TestApplication extends MultiDexApplication { private static TestApplication mInstance; @Override public void onCreate() { super.onCreate(); Thread.setDefaultUncaughtExceptionHandler(new CrashHandler()); }

然后在這個(gè)CrashHandler 想辦法重啟應(yīng)用。有兩種方法如下:

方法1.通過(guò)AlarmManager

public class CrashHandler implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread t, Throwable e) { //重啟app /** * 這種方式 功能是可以達(dá)成 * 但是有問(wèn)題就是如果說(shuō)你的app掛了 這時(shí)候會(huì)顯示系統(tǒng)桌面 * 然后你的app有啟動(dòng)起來(lái)了 * 給人的感覺(jué)不太好 */ Intent intent = new Intent(); Context context = TestApplication.getInstance(); intent.setClass(context, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_ONE_SHOT); AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC,System.currentTimeMillis() + 100,pendingIntent); Process.killProcess(Process.myPid()); System.exit(0); }}

方法2:

使用第三方庫(kù)

implementation ’com.jakewharton:process-phoenix:2.0.0’

public class CrashHandler implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread t, Throwable e) { ProcessPhoenix.triggerRebirth(TestApplication.getInstance()); }}

這個(gè)第三方庫(kù)的原理是:當(dāng)app 崩潰的時(shí)候,ProcessPhoenix.triggerRebirth(TestApplication.getInstance());就會(huì)觸發(fā)啟動(dòng)另外一個(gè)進(jìn)程的Activity,然后把當(dāng)前崩潰的進(jìn)程結(jié)束掉。在新進(jìn)程的Activity里面,把應(yīng)用在自己的進(jìn)程里面的啟動(dòng)起來(lái)。

總結(jié)

到此這篇關(guān)于Android 應(yīng)用Crash 后自動(dòng)重啟的文章就介紹到這了,更多相關(guān)android 自動(dòng)重啟內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 禹城市| 社旗县| 喀喇沁旗| 南昌市| 沾益县| 珠海市| 大兴区| 九龙县| 正定县| 大宁县| 安达市| 平乡县| 孝义市| 宁陵县| 嵩明县| 思茅市| 盘山县| 湾仔区| 泌阳县| 松原市| 桑植县| 博客| 旬邑县| 澄江县| 娄底市| 耒阳市| 增城市| 肥东县| 上林县| 珲春市| 青田县| 荃湾区| 乃东县| 广州市| 黔西县| 六安市| 文安县| 南昌县| 惠来县| 武宣县| 大英县|