欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例

 更新時(shí)間:2017年05月27日 10:08:04   作者:o動(dòng)感超人o  
本篇文章主要介紹了android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1.判斷進(jìn)程是否存在

 /**
  * 判斷是否在主進(jìn)程,這個(gè)方法判斷進(jìn)程名或者pid都可以,如果進(jìn)程名一樣那pid肯定也一樣
  *
  * @return true:當(dāng)前進(jìn)程是主進(jìn)程 false:當(dāng)前進(jìn)程不是主進(jìn)程
  */
 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.判斷服務(wù)是否存在

 /**
  * 判斷service是否已經(jīng)運(yùn)行
  * 必須判斷uid,因?yàn)榭赡苡兄孛腟ervice,所以要找自己程序的Service,不同進(jìn)程只要是同一個(gè)程序就是同一個(gè)uid,個(gè)人理解android系統(tǒng)中一個(gè)程序就是一個(gè)用戶(hù)
  * 用pid替換uid進(jìn)行判斷強(qiáng)烈不建議,因?yàn)槿绻沁h(yuǎn)程Service的話(huà),主進(jìn)程的pid和遠(yuǎn)程Service的pid不是一個(gè)值,在主進(jìn)程調(diào)用該方法會(huì)導(dǎo)致Service即使已經(jīng)運(yùn)行也會(huì)認(rèn)為沒(méi)有運(yùn)行
  * 如果Service和主進(jìn)程是一個(gè)進(jìn)程的話(huà),用pid不會(huì)出錯(cuò),但是這種方法強(qiáng)烈不建議,如果你后來(lái)把Service改成了遠(yuǎn)程Service,這時(shí)候判斷就出錯(cuò)了
  *
  * @param className Service的全名,例如PushService.class.getName()
  * @return true:Service已運(yùn)行 false:Service未運(yùn)行
  */
 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的類(lèi)全名,網(wǎng)上我查到的資料,全部是用的pid,在Service和主進(jìn)程是一個(gè)進(jìn)程的時(shí)候,pid沒(méi)有問(wèn)題,但是如果Service是遠(yuǎn)程Service,和主進(jìn)程就不是一個(gè)進(jìn)程了,這時(shí)候用pid和Service的類(lèi)全名進(jìn)行判斷就會(huì)判斷錯(cuò)誤

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何實(shí)現(xiàn)自定義SpringBoot的Starter組件

    如何實(shí)現(xiàn)自定義SpringBoot的Starter組件

    這篇文章主要介紹了實(shí)現(xiàn)自定義SpringBoot的Starter組件的示例代碼,想要自定義starter組件,首先要了解springboot是如何加載starter的,也就是springboot的自動(dòng)裝配機(jī)制原理,本文結(jié)合示例代碼詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • java線(xiàn)程封閉之棧封閉和ThreadLocal

    java線(xiàn)程封閉之棧封閉和ThreadLocal

    這篇文章主要介紹了java線(xiàn)程封閉之棧封閉和ThreadLocal,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • idea手動(dòng)執(zhí)行maven命令的三種實(shí)現(xiàn)方式

    idea手動(dòng)執(zhí)行maven命令的三種實(shí)現(xiàn)方式

    這篇文章主要介紹了idea手動(dòng)執(zhí)行maven命令的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解

    Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解

    這篇文章主要介紹了Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot Entity中枚舉類(lèi)型詳細(xì)使用介紹

    SpringBoot Entity中枚舉類(lèi)型詳細(xì)使用介紹

    本文介紹SpringBoot如何在Entity(DAO)中使用枚舉類(lèi)型。(本文使用MyBatis-Plus)。在實(shí)際開(kāi)發(fā)中,經(jīng)常會(huì)遇到表示類(lèi)型或者狀態(tài)的情況,比如:有三種支付方式:微信、支付寶、銀聯(lián)。本文介紹如何這種場(chǎng)景的方案對(duì)比,并用實(shí)例來(lái)介紹如何用枚舉這種最優(yōu)雅的來(lái)表示
    2022-10-10
  • 微服務(wù)架構(gòu)設(shè)計(jì)RocketMQ基礎(chǔ)及環(huán)境整合

    微服務(wù)架構(gòu)設(shè)計(jì)RocketMQ基礎(chǔ)及環(huán)境整合

    這篇文章主要介紹了微服務(wù)架構(gòu)設(shè)計(jì)入門(mén)RocketMQ的基礎(chǔ)及環(huán)境整合實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • mybatis-plus更新策略部分字段不更新問(wèn)題

    mybatis-plus更新策略部分字段不更新問(wèn)題

    這篇文章主要介紹了mybatis-plus更新策略部分字段不更新問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java輸入年份和月份判斷多少天實(shí)例代碼

    Java輸入年份和月份判斷多少天實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Java輸入年度和月份判斷多少天的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java連接Oracle數(shù)據(jù)庫(kù)實(shí)例解析

    Java連接Oracle數(shù)據(jù)庫(kù)實(shí)例解析

    數(shù)據(jù)庫(kù)的操作是當(dāng)前系統(tǒng)開(kāi)發(fā)必不可少的開(kāi)發(fā)部分之一。接下來(lái)通過(guò)本文給大家介紹Java連接Oracle數(shù)據(jù)庫(kù)實(shí)例解析,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • java實(shí)現(xiàn)向有序數(shù)組中插入一個(gè)元素實(shí)例

    java實(shí)現(xiàn)向有序數(shù)組中插入一個(gè)元素實(shí)例

    本篇文章主要介紹了java實(shí)現(xiàn)向有序數(shù)組中插入一個(gè)元素實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評(píng)論