Приложение не имеет метода onDestroy. У него есть onTerminate, но он никогда не вызывается = (
Вот мое решение. У меня есть MainActivity в моем приложении, которое обязательно должно быть активным, если приложение работает. Поэтому в широковещательном приемнике я всегда проверяю, работает ли MainActiviy.
public void onReceive(final Context context, final Intent intent){
if(isAppRunning(context)){
// Do my handling
}
else{
// You can disable receiver here
Log.w(LOGTAG, "App not running. Ignore " + LOGTAG + " call.");
}
}</p>
<code>protected boolean isAppRunning(Context context){
String activity = MainActivity.class.getName();
ActivityManager activityManager = (ActivityManager)context.
getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = activityManager.
getRunningTasks(Integer.MAX_VALUE);
for(RunningTaskInfo task : tasks){
if(activity.equals(task.baseActivity.getClassName())){
return true;
}
}
return false;
}
</code>