好的。让我试着拍一下这个..
让我们创建一个BaseActivity
扩展自Activity
,你Activities
应该从这个扩展BaseActivity
...
Override
检查当前进程是否有更多活动onDestroy()
或..如果它没有更多活动或然后启动你的..BaseActivity
Task
Activities
Task
Activity
Service
也覆盖onStart()
or onCreate()
inBaseActivity
并检查这是否是唯一的活动Task
,并且Activity
...如果是,则停止您的Service
以下 API 可用于检查是否有更多活动Task
和/或Activities
在应用程序中:
获取正在运行的任务列表:
ActivityManager activityManager = (ActivityManager)getBaseContext().getSystemService (Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks= activityManager.getRunningTasks(Integer.MAX_VALUE);
要检查任务是否来自您的应用程序:
for (RunningTaskInfo task : tasks) {
if (getContext().getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName())) {
//check activity
}
}
NumActivities
的属性RunningTaskInfo
可用于检查Task
..中的活动
希望能帮助到你...
EDIT1:我喜欢@CommonsWare 评论。也许你可以重新考虑你的方法。