Android自己管理Activity和Service

在一些特殊情况下,我们需要对Activity Task进行管理。

当然,我们最好还是不要自己去控制,以免发生一些不必要的麻烦。

package com.anjoyo.musicplayer.util;  
  
import java.util.List;  
  
import android.app.ActivityManager;  
import android.content.ComponentName;  
import android.content.Context;  
  
public class ContextManagerUtil {  
  
    /**  
     * @param context 上下文 
     * @param className 服务类的名称 
     * @return 返回服务是否还在后台运行 
     */  
    public static boolean isServiceRunning(Context context,Class<?> obj) {  
  
        boolean isRunning = false;  
        ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);   
        List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30);  
  
        if (!(serviceList.size()>0)) {  
            return false;  
        }  
  
        for (int i=0; i<serviceList.size(); i++) {  
            if (serviceList.get(i).service.getClassName().equals(obj.getName()) == true) {  
                isRunning = true;  
                break;  
            }  
        }  
        return isRunning;  
    }  
      
    /**  
     * 返回本程序中Task中顶端的Activity 
     * @param context 
     * @return  
     */  
    public static ComponentName getTopActivity(Context context) {  
        //需要android.permission.GET_TASKS权限  
        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  
        int maxNum = 10;//获取的正在运行的activity的最大数量  
        List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(maxNum);  
        for (ActivityManager.RunningTaskInfo runningTaskInfo : runningTasks) {  
            ComponentName componentName = runningTaskInfo.topActivity;  
            if (componentName != null && componentName.getClassName().startsWith("com.anjoyo.musicplayer")) {  
                return componentName;  
            }  
        }  
          
        return null;  
    }  
      
      
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,316评论 25 708
  • Application 标签 android:allowTaskReparenting android:allow...
    Shawn_Dut阅读 7,917评论 2 61
  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,848评论 3 18
  • 梦想已久 我来到了普罗旺斯 亲切如那童年的风铃 忧郁如那风中的紫色 那古堡,那一扇古老浮雕的木门 苍老着小镇的岁月...
    行走者的背影阅读 633评论 1 7
  • 我爱秋天 秋天来啦!勤劳的秋姑娘送走了炎热的夏天给人们带来了凉爽的秋天。我爱秋天的五谷丰登,我爱秋天的瓜果飘香,我...
    快乐E家阅读 273评论 0 0