好的。让我试着拍一下这个..
让我们创建一个BaseActivity扩展自Activity,你Activities应该从这个扩展BaseActivity...
Override检查当前进程是否有更多活动onDestroy()或..如果它没有更多活动或然后启动你的..BaseActivityTaskActivitiesTaskActivityService
也覆盖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 评论。也许你可以重新考虑你的方法。