思路就是后台扫描正在运行的此APP,判断是否在运行,如果没有运行,直接启动,即使报错也会直接重新启动,
import android.app.ActivityManager; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.os.IBinder; import android.util.Log; import com.thirtydays.caruav.MainActivity; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Timer; import java.util.TimerTask; /** * Created by xpf on 2017/6/3 :) * 检测APP页面是否一直运行,不运行就直接启动 */ public class MonitoringService extends Service { private final static String TAG = "MonitoringService"; public static final String CANCEL_MONITOR = "cancelMonitor"; private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (CANCEL_MONITOR.equals(intent.getAction())) { Log.e(TAG, "onReceive:kill app process!"); killMyselfPid(); // 杀死自己的进程 } } }; private Timer timer = new Timer(); private TimerTask task = new TimerTask() { @Override