激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - android中判斷服務或者進程是否存在實例

android中判斷服務或者進程是否存在實例

2020-10-31 23:41o動感超人o Java教程

本篇文章主要介紹了android中判斷服務或者進程是否存在實例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1.判斷進程是否存在

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * 判斷是否在主進程,這個方法判斷進程名或者pid都可以,如果進程名一樣那pid肯定也一樣
 *
 * @return true:當前進程是主進程 false:當前進程不是主進程
 */
public boolean isUIProcess() {
 ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
 List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
 String mainProcessName = getPackageName();
 int myPid = android.os.Process.myPid();
 for (ActivityManager.RunningAppProcessInfo info : processInfos) {
  if (info.pid == myPid && mainProcessName.equals(info.processName)) {
   return true;
  }
 }
 return false;
}

2.判斷服務是否存在

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * 判斷service是否已經運行
 * 必須判斷uid,因為可能有重名的Service,所以要找自己程序的Service,不同進程只要是同一個程序就是同一個uid,個人理解android系統中一個程序就是一個用戶
 * 用pid替換uid進行判斷強烈不建議,因為如果是遠程Service的話,主進程的pid和遠程Service的pid不是一個值,在主進程調用該方法會導致Service即使已經運行也會認為沒有運行
 * 如果Service和主進程是一個進程的話,用pid不會出錯,但是這種方法強烈不建議,如果你后來把Service改成了遠程Service,這時候判斷就出錯了
 *
 * @param className Service的全名,例如PushService.class.getName()
 * @return true:Service已運行 false:Service未運行
 */
public boolean isServiceExisted(String className) {
 ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
 List<ActivityManager.RunningServiceInfo> serviceList = am.getRunningServices(Integer.MAX_VALUE);
 int myUid = android.os.Process.myUid();
 for (ActivityManager.RunningServiceInfo runningServiceInfo : serviceList) {
  if (runningServiceInfo.uid == myUid && runningServiceInfo.service.getClassName().equals(className)) {
   return true;
  }
 }
 return false;
}

注意:

上面判斷Service是否存在,用的uid和Service的類全名,網上我查到的資料,全部是用的pid,在Service和主進程是一個進程的時候,pid沒有問題,但是如果Service是遠程Service,和主進程就不是一個進程了,這時候用pid和Service的類全名進行判斷就會判斷錯誤

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.jianshu.com/p/469400940ee0

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品一区二区三区免费 | 日本成人一区二区 | 欧美 日韩 国产 成人 | 欧洲黄色一级视频 | 最新中文字幕在线视频 | 欧美成人做爰高潮片免费视频 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 久久千人斩 | 国产成人精品免高潮在线观看 | 亚洲一区在线免费视频 | 久久精品国产亚洲7777 | 黄色小视频在线免费看 | 久久久久成人免费 | 久草在线免费看 | 日本逼逼视频 | 日韩在线播放一区二区 | 日韩视频在线观看免费视频 | 日日天日日夜日日摸 | 国产一区二区视频网站 | 一区二区三区四区高清视频 | 精品一区二区三区欧美 | 欧美一区二区三区免费不卡 | 国产1区2区在线 | 日本黄色大片免费 | 91精品国产一区二区三区动漫 | av在线免费观看网站 | 黄色成人小视频 | 麻豆国产一区 | 国产精品视频一区二区三区综合 | 日韩视频一二三 | 九九热免费精品视频 | 国产a级久久 | 91精品国产综合久久男男 | 日本最新免费二区三区 | 欧美a视频在线观看 | 亚洲午夜在线观看 | 欧美色爱综合 | 49vv看片免费 | 久久精品欧美一区二区三区不卡 | 精品中文字幕视频 | 国产精品久久久久久久久久大牛 |