最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 多線程實現(xiàn)重復啟動與停止的服務

 更新時間:2017年08月16日 11:00:19   投稿:lqh  
這篇文章主要介紹了Android 多線程實現(xiàn)重復啟動與停止的服務的相關資料,多線程環(huán)境下為了避免死鎖,一般提倡開放調(diào)用,開放調(diào)用可以避免死鎖,它的代價是失去原子性,這里說明重復啟動與停止的服務,需要的朋友可以參考下

Android 多線程實現(xiàn)重復啟動與停止的服務

多線程環(huán)境下為了避免死鎖,一般提倡開放調(diào)用,開放調(diào)用可以避免死鎖,它的代價是失去原子性。但是在有些時候會顯得邏輯錯誤,

例如:


class A{ 
 
 private boolean mIsStarted; 
 void start(){ 
   boolean changed = false; 
   synchronized(this){ 
  if(!mIsStarted){ 
    mIsStarted = true; 
    changed = false; 
   } 
   if(changed){ 
    callBack.onStart(); 
   } 
  } 
 } 
 
boolean isStarted(){ 
 sychronized(this){ 
  return mIstarted; 
 } 
} 
 void stop(){  
  boolean changed = false;  
  synchronized(this){  
 
  if(mStarted){  
   mStarted = false;  
  changed = true;  
  }  
 }  
 
 if(changed){ 
  callBack.onStop();  
  }  
 }  
} 

   在單線程環(huán)境下這個代碼沒有任何問題??墒窃诙嗑€程環(huán)境就會出現(xiàn)奇怪的現(xiàn)象。

  原則上講, onStart 一定要走在onStop前面,可事實并非如此:

  執(zhí)行步驟如下: 

   線程1 start

   線程2 stop

   線程1

 if(!mIsStarted){

 mIsStarted = true; 
 changed = false; 
} 

   線程2  

synchronized(this){ 

 if(mStarted){  
  mStarted = false;  
 changed = true;  
 }  
}  

   線程2 onStop 

   線程1 onStart 

現(xiàn)在onStop 走在了onStart前面。那么問題來了,如何才能保證onStart 一定在onStop前面呢? 

那么問題又來了,stop 方法為什么不允許在start之前調(diào)用呢?如果一個類不可restart,那么stop是可以在start之前的,否則是不可以在start之前的。

以上就是Android 多線程實現(xiàn)重復啟動與停止的服務的講解,如有疑問請留言或者到本站社區(qū)交流討論,感謝 閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • Android 讀取txt,按行讀取的實例講解

    Android 讀取txt,按行讀取的實例講解

    今天小編就為大家分享一篇Android 讀取txt,按行讀取的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Android編程實現(xiàn)下載時主界面與詳細界面一致更新的方法

    Android編程實現(xiàn)下載時主界面與詳細界面一致更新的方法

    這篇文章主要介紹了Android編程實現(xiàn)下載時主界面與詳細界面一致更新的方法,涉及Android事件監(jiān)聽及界面動態(tài)更新相關操作技巧,需要的朋友可以參考下
    2017-11-11
  • android 使用XStream解析xml的實例

    android 使用XStream解析xml的實例

    下面小編就為大家分享一篇android 使用XStream解析xml的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android實現(xiàn)底部半透明彈出框PopUpWindow效果

    Android實現(xiàn)底部半透明彈出框PopUpWindow效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)底部半透明彈出框PopUpWindow效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android Bitmap的加載與緩存

    Android Bitmap的加載與緩存

    這篇文章主要介紹了Android Bitmap的加載與緩存的相關資料,需要的朋友可以參考下
    2018-03-03
  • Android自定義View實現(xiàn)開關按鈕

    Android自定義View實現(xiàn)開關按鈕

    android 自定義view知識非常廣泛,難以讓人掌握。但是也是andoroid進階學習的必經(jīng)之路。下面通過本文給大家介紹Android自定義View實現(xiàn)開關按鈕的知識,非常不錯,感興趣的朋友一起看看吧
    2016-11-11
  • SimpleCommand實現(xiàn)上傳文件或視頻功能(四)

    SimpleCommand實現(xiàn)上傳文件或視頻功能(四)

    這篇文章主要介紹了SimpleCommand實現(xiàn)上傳文件或視頻功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解MVP模式在Android開發(fā)中的應用

    詳解MVP模式在Android開發(fā)中的應用

    MVP是MVC衍生而來的,很早以前就由某軟公司提出,近年來在Android應用開發(fā)中越來越多的被提及,越來越重要了。這篇文章主要介紹了詳解MVP模式在Android開發(fā)中的應用,有興趣的可以了解一下。
    2016-11-11
  • android中實現(xiàn)在ImageView上隨意畫線涂鴉的方法

    android中實現(xiàn)在ImageView上隨意畫線涂鴉的方法

    今天小編就為大家分享一篇android中實現(xiàn)在ImageView上隨意畫線涂鴉的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Android自定義Dialog框樣式

    Android自定義Dialog框樣式

    這篇文章主要為大家詳細介紹了Android自定義Dialog框樣式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論

兴和县| 宿迁市| 东丰县| 嘉兴市| 和田市| 仁布县| 土默特左旗| 沧州市| 莱西市| 新巴尔虎右旗| 新绛县| 德州市| 蒲城县| 南和县| 乐平市| 桂东县| 靖江市| 莫力| 大兴区| 浦县| 凌源市| 探索| 石门县| 南溪县| 河西区| 商南县| 宝山区| 五莲县| 莫力| 天门市| 上蔡县| 确山县| 舒兰市| 龙游县| 义马市| 民县| 克什克腾旗| 法库县| 南昌县| 务川| 宣汉县|