Android:检查应用是否已关闭

时间:2017-02-09 07:58:34

标签: android alarmmanager

我有一个警报广播接收器,我想检查我的应用程序是否完全关闭,这意味着应用程序既不在前台也不在后台运行。

任何人都可以告诉我如何检查这个?

2 个答案:

答案 0 :(得分:0)

您可以创建service并覆盖onTaskRemoved()方法

来自Documentation

  

用户已删除任务意味着将应用程序从任务中滑出   名单。从手机设置停止服务不会触发   Service.onTaskRemoved()。

代码:

 public class AppStopped extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d("Service", "Service Started");
        return START_NOT_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d("Service", "Service Destroyed");
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        Log.e("Service", "END");
        Toast.makeText(getApplicationContext(), "App Stopped", Toast.LENGTH_SHORT).show();
        //Code here
        stopSelf();
    }
}

在清单中:

<service android:name="com.example.AppStopped" 
     android:stopWithTask="false" />

在您的活动中启动服务,例如:

startService(new Intent(getBaseContext(), AppStopped.class));

答案 1 :(得分:-1)

在您的Application类中:

public class MyApplication extends Application {    
    @Override
    public void onTerminate() {
        super.onTerminate();
        // your app is closed
    }
}