android 判斷app是否運行在主線程中

在app開發中,往往因爲一些需求會開啓多個進程去完成一些後臺任務,如消息通知,消息推送,這個時候就需要判斷app中哪些數據是在主線程中運行,哪些是在後臺進程中運行的,那麼在appcation裏調用這段代碼來判斷app是否運行在主線程中  ,同時初始化主線程中需要用到的數據,就不會和後臺進程產生衝突了

 private boolean isMainProcess() {

        ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);//app運行狀態管理權限
//        List<ActivityManager.RunningAppProcessInfo> info= am.getRunningAppProcesses();
        int pid = android.os.Process.myPid();//當前運行時的進程id
        Log.d(TAG,"pid="+pid);
        String packageName = getPackageName();
        for (ActivityManager.RunningAppProcessInfo info : am.getRunningAppProcesses()) {
            Log.d(TAG,"info.pid="+info.pid);
            if (info.pid == pid && packageName.equals(info.processName)) {
                return true;
            }
        }
        return false;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章