[問題] service維持運作

看板AndroidDev作者 (喲)時間14年前 (2012/04/19 00:08), 編輯推噓4(408)
留言12則, 4人參與, 最新討論串1/2 (看更多)
OS版本: 2.1 各位好, 最近我練習service保持背景執行,由於對service運作情況沒有信心, 所以做一份簡單的外部架構來測試,包含一個Activity負責啟動Service,以及 一個Service. 我把WakeLock的設定放在Service的onStartCommand,設定為PARTIAL_WAKE_LOCK. 剛開始觀察,service有執行一陣子,按電源鈕關掉螢幕也還會運作一陣子. 但是離開去忙一陣子之後回來看,發現service已經被系統請出去了. 請問程式這樣的運作情況對嗎? 可以相信service能夠如實掌握該運作的工作嗎? 程式片段如下: ........................... extends Service { private static PowerManager.WakeLock wakeLock = null; @Override public int onStartCommand(Intent intent, int flags, int startId) { HelloWorldService.acquireLock(HelloWorldService.this); return super.onStartCommand(intent, flags, startId); } @Override public IBinder onBind(Intent intent) { return null; } public static synchronized void acquireLock(Context context) { if (wakeLock == null) { PowerManager powerMan = (PowerManager)context.getSystemService( Context.POWER_SERVICE); wakeLock = powerMan.newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, "idv.world.hello"); wakeLock.setReferenceCounted(true); } wakeLock.acquire(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.225.20 ※ 編輯: yauhh 來自: 59.112.225.20 (04/19 00:08)

04/19 09:16, , 1F
IntentService會比較好用
04/19 09:16, 1F

04/19 11:45, , 2F
這東西可以慶菜就保持service存活嗎?
04/19 11:45, 2F

04/19 12:11, , 3F
onStartCommand時回傳START_STICKY,service死了會被系統
04/19 12:11, 3F

04/19 12:12, , 4F
叫起來
04/19 12:12, 4F

04/19 12:37, , 5F
在跑 onHandleIntent 的時候,不會被砍掉。跑完後就會。
04/19 12:37, 5F

04/19 12:38, , 6F
在onHandleIntent裡把執行緒block住,要關時再解開
04/19 12:38, 6F

04/19 12:40, , 7F
IntentService是被設計成.... 長時間在背景工作用的,一般
04/19 12:40, 7F

04/19 12:40, , 8F
Service只要沒有activity跟他連結,就可能被砍。
04/19 12:40, 8F

04/19 18:19, , 9F
能不用維持就不要維持吧 現在一堆使用者都會裝一些APP來砍
04/19 18:19, 9F

04/19 18:20, , 10F
你的service 然後程式壞掉不能跑還會怪你 XD
04/19 18:20, 10F

04/19 19:15, , 11F
拜託,我要上傳檔案啊,不維持背景運作就沒輒了
04/19 19:15, 11F

04/19 19:21, , 12F
阿 我說的是指24小時待命那種
04/19 19:21, 12F
文章代碼(AID): #1FZkRy71 (AndroidDev)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #1FZkRy71 (AndroidDev)