zoukankan      html  css  js  c++  java
  • 用代码如何检测一个android程序是否在运行

    /**
         * 检测一个android程序是否在运行
         * @param context
         * @param PackageName
         * @return
         */
        public static  boolean isServiceStarted(Context context,String PackageName) {
            //<uses-permission android:name="android.permission.GET_TASKS"/>
            //https://crazier9527.iteye.com/blog/1476134
            boolean isStarted =false;
            try {
                ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
                int intGetTastCounter = 1000;
                List<ActivityManager.RunningServiceInfo> mRunningService = mActivityManager.getRunningServices(intGetTastCounter );
                for (ActivityManager.RunningServiceInfo amService : mRunningService) {
                    if(0 == amService.service.getPackageName().compareTo(PackageName)) {
                        isStarted = true;
                        break;
                    }
                }
            }
            catch(SecurityException e) {
                e.printStackTrace();
            }
            return isStarted;
        }
    

      权限

    <uses-permission android:name="android.permission.GET_TASKS"/>

    判断一个程序是否安装,如果安装就启动

    start_btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (isApkInstalled(getApplicationContext(),"包名")){
                        Intent intent = getPackageManager().getLaunchIntentForPackage("包名");
                        if (intent != null) {
                            intent.putExtra("type", "110");
                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            startActivity(intent);
                        }
                    }else {
                        Toast.makeText(getApplicationContext(),"没有安装", Toast.LENGTH_SHORT).show();
                    }
    
    
                }
            });

    判断一个程序是否安装

    /**
         * 判断程序是否安装  
         * @param context
         * @param packageName
         * @return
         */
        public static boolean isApkInstalled(Context context, String packageName) {
            if (TextUtils.isEmpty(packageName)) {
                return false;
            }
            try {
                ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
                return true;
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
                return false;
            }
        }
  • 相关阅读:
    B
    给定二叉树先序、中序遍历序列,求后序遍历
    24点游戏dfs求解
    设计模式之单例模式
    生产者—消费者模式示例
    LeetCode(3):Longest Substring Without Repeating Characters
    LeetCode(5):Longest Palindromic Substring
    LeetCode(60):Permutation Sequence
    LeetCode(50):Pow(x,n)
    LeetCode(69):Sqrt(x)
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/10794541.html
Copyright © 2011-2022 走看看