首页

android 异常崩溃后 重启app(进程守护方式实现)

java

2020-7-18

package com.sunfusheng.daemon.sample;

import android.content.ComponentName;
import android.content.Intent;
import android.os.Looper;
import android.util.Log;

import com.blankj.utilcode.util.AppUtils;
import com.sunfusheng.daemon.AbsHeartBeatService;

/**
 * @author sunfusheng on 2018/8/3.
 */
public class HeartBeatService extends AbsHeartBeatService {
    private static final String TAG = "---> HeartBeatService";
    private static final android.os.Handler mainThreadHandler = new android.os.Handler(Looper.getMainLooper());

    @Override
    public void onStartService() {
        Log.d(TAG, "onStartService()");
    }

    @Override
    public void onStopService() {
        Log.e(TAG, "onStopService()");
    }

    @Override
    public long getDelayExecutedMillis() {
        return 0;
    }

    @Override
    public long getHeartBeatMillis() {
        return 30 * 1000;
    }

    @Override
    public void onHeartBeat() {


        String packetName=AppUtils.getAppPackageName();
        Log.d(TAG, "onHeartBeat()" packetName);
        if(!AppUtils.isAppRunning(packetName)){

            //方案一
                        AppUtils.relaunchApp();

            //方案二
//            Intent sayHelloIntent=new Intent(this,MainActivity.class);
//            sayHelloIntent.setAction(Intent.ACTION_VIEW);
//            sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
//            sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
//            getApplicationContext().startActivity(sayHelloIntent);
//


            //方案三
//            Intent intent = new Intent("android.intent.action.MAIN");
//            intent.setComponent(new ComponentName(getApplicationContext().getPackageName(), MainActivity.class.getName()));
//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//            getApplicationContext().startActivity(intent);


            Log.d(TAG, packetName " launchApp Sucess!!!!!!");

        }else{
            Log.d(TAG, packetName " is running");
            if(!AppUtils.isAppForeground()){
                Intent sayHelloIntent=new Intent(this,MainActivity.class);
                sayHelloIntent.setAction(Intent.ACTION_VIEW);
                sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                getApplicationContext().startActivity(sayHelloIntent);
                Log.d(TAG, packetName " is FLAG_ACTIVITY_SINGLE_TOP!!!");
            }

        }
    }
}
资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
.gradle/4.4/fileChanges/last-build.bin , 1
.gradle/4.4/fileContent/fileContent.lock , 17
.gradle/4.4/fileHashes/fileHashes.bin , 259469
.gradle/4.4/fileHashes/fileHashes.lock , 17
.gradle/4.4/fileHashes/resourceHashesCache.bin , 19721
.gradle/4.4/javaCompile/classAnalysis.bin , 761008
.gradle/4.4/javaCompile/jarAnalysis.bin , 322929
.gradle/4.4/javaCompile/javaCompile.lock , 17
.gradle/4.4/javaCompile/taskHistory.bin , 381605
.gradle/4.4/javaCompile/taskJars.bin , 25861
.gradle/4.4/taskHistory/taskHistory.bin , 1752753
.gradle/4.4/taskHistory/taskHistory.lock , 17
.gradle/buildOutputCleanup/buildOutputCleanup.lock , 17
.gradle/buildOutputCleanup/cache.properties , 51
.gradle/buildOutputCleanup/outputFiles.bin , 23411
.idea/caches/build_file_checksums.ser , 598
.idea/codeStyles/Project.xml , 1775
.idea/encodings.xml , 159
.idea/gradle.xml , 688
.idea/libraries/android_arch_core_common_1_1_0_jar.xml , 533
.idea/libraries/android_arch_core_runtime_1_1_0.xml , 647
.idea/libraries/android_arch_lifecycle_common_1_1_0_jar.xml , 547
.idea/libraries/android_arch_lifecycle_livedata_core_1_1_0.xml , 688
.idea/libraries/android_arch_lifecycle_runtime_1_1_0.xml , 658
.idea/libraries/android_arch_lifecycle_viewmodel_1_1_0.xml , 668
.idea/libraries/com_android_support_animated_vector_drawable_27_1_1.xml , 742
.idea/libraries/com_android_support_appcompat_v7_27_1_1.xml , 682
.idea/libraries/com_android_support_support_annotations_27_1_1_jar.xml , 609
.idea/libraries/com_android_support_support_compat_27_1_1.xml , 692
.idea/libraries/com_android_support_support_core_ui_27_1_1.xml , 697
.idea/libraries/com_android_support_support_core_utils_27_1_1.xml , 712
.idea/libraries/com_android_support_support_fragment_27_1_1.xml , 702
.idea/libraries/com_android_support_support_vector_drawable_27_1_1.xml , 737
.idea/libraries/com_blankj_utilcode_1_25_5.xml , 644
.idea/libraries/com_google_code_gson_gson_2_8_2_jar.xml , 532
.idea/misc.xml , 5802
.idea/modules.xml , 526
.idea/runConfigurations.xml , 564
.idea/workspace.xml , 273557
DaemonService/.gitignore , 7
DaemonService/DaemonService.iml , 10615
DaemonService/build/generated/mockable-android-27.v3.jar , 2829140
DaemonService/build/generated/source/aidl/debug/com/sunfusheng/daemon/DaemonAidl.java , 3099
DaemonService/build/generated/source/buildConfig/androidTest/debug/com/sunfusheng/daemon/test/BuildConfig.java , 459
DaemonService/build/generated/source/buildConfig/debug/com/sunfusheng/daemon/BuildConfig.java , 449
DaemonService/build/generated/source/r/androidTest/debug/android/arch/core/R.java , 247
DaemonService/build/generated/source/r/androidTest/debug/android/arch/lifecycle/R.java , 252
DaemonService/build/generated/source/r/androidTest/debug/android/arch/lifecycle/livedata/core/R.java , 266
DaemonService/build/generated/source/r/androidTest/debug/android/arch/lifecycle/viewmodel/R.java , 262
DaemonService/build/generated/source/r/androidTest/debug/android/support/compat/R.java , 8052
DaemonService/build/generated/source/r/androidTest/debug/android/support/coreui/R.java , 10023
DaemonService/build/generated/source/r/androidTest/debug/android/support/coreutils/R.java , 8055
DaemonService/build/generated/source/r/androidTest/debug/android/support/fragment/R.java , 10025
DaemonService/build/generated/source/r/androidTest/debug/android/support/graphics/drawable/R.java , 8063
DaemonService/build/generated/source/r/androidTest/debug/android/support/graphics/drawable/animated/R.java , 10043
DaemonService/build/generated/source/r/androidTest/debug/android/support/v7/appcompat/R.java , 115824
DaemonService/build/generated/source/r/androidTest/debug/com/sunfusheng/daemon/R.java , 115873
DaemonService/build/generated/source/r/androidTest/debug/com/sunfusheng/daemon/test/R.java , 459605
DaemonService/build/generated/source/r/debug/android/arch/core/R.java , 247
DaemonService/build/generated/source/r/debug/android/arch/lifecycle/R.java , 252
DaemonService/build/generated/source/r/debug/android/arch/lifecycle/livedata/core/R.java , 266
DaemonService/build/generated/source/r/debug/android/arch/lifecycle/viewmodel/R.java , 262
DaemonService/build/generated/source/r/debug/android/support/compat/R.java , 7446
DaemonService/build/generated/source/r/debug/android/support/coreui/R.java , 9249
DaemonService/build/generated/source/r/debug/android/support/coreutils/R.java , 7449
DaemonService/build/generated/source/r/debug/android/support/fragment/R.java , 9251
DaemonService/build/generated/source/r/debug/android/support/graphics/drawable/R.java , 7457
DaemonService/build/generated/source/r/debug/android/support/graphics/drawable/animated/R.java , 9269
DaemonService/build/generated/source/r/debug/android/support/v7/appcompat/R.java , 106830
DaemonService/build/generated/source/r/debug/com/sunfusheng/daemon/R.java , 106873
DaemonService/build/intermediates/attr/R.txt , 49665
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/debug.json , 203943
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-af.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-am.json , 1851
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ar.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-az.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-b+sr+Latn.json , 1898
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-be.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bg.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bn.json , 1857
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-bs.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ca.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-cs.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-da.json , 1853
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-de.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-el.json , 1858
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rAU.json , 1877
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rCA.json , 1087
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rGB.json , 1877
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rIN.json , 1877
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-en-rXC.json , 1106
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-es-rUS.json , 1880
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-es.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-et.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-eu.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fa.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fi.json , 1853
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fr-rCA.json , 1882
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-fr.json , 1858
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-gl.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-gu.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-h720dp-v13.json , 811
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hdpi-v4.json , 840
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hi.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hr.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hu.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-hy.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-in.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-is.json , 1852
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-it.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-iw.json , 1852
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ja.json , 1849
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ka.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-kk.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-km.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-kn.json , 1857
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ko.json , 1847
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ky.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-land.json , 832
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-large-v4.json , 926
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ldltr-v21.json , 808
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-lo.json , 1853
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-lt.json , 1857
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-lv.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-mk.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ml.json , 1857
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-mn.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-mr.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ms.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-my.json , 1858
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-nb.json , 1851
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ne.json , 1859
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-night-v8.json , 895
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-nl.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-pa.json , 1852
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-pl.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-port.json , 787
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-pt-rBR.json , 1880
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-pt-rPT.json , 1881
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-pt.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ro.json , 1858
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ru.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-si.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sk.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sl.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sq.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sr.json , 1856
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sv.json , 1855
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sw.json , 1854
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-sw600dp-v13.json , 920
DaemonService/build/intermediates/blame/res/androidTest/debug/multi-v2/values-ta.json , 1855
最多只能显示150条信息!
没有账号? 忘记密码?

社交账号快速登录