電池節能策略,我看這個偉大的博客文章Android Architecture Tutorial: Developing an App with a Background Service (using IPC)對於長時間運行的工控機服務
筆者顯示在一個單獨的進程固定時間間隔內運行的鳴叫檢索服務。
該服務將繼續運行無限。我意識到要停止該過程,要去管理應用程序並明確停止服務是唯一的方法。
請注意,這不是一個非常電池友好的方式。即使是作者自稱。
是的,有黑暗的一面Android的後臺服務太 - 太 許多服務在後臺做太多東西會減慢 電話,吸電池。然而,這並不是我想在這篇文章中提到的 ,所以也許我們會在另一篇文章中回到資源 管理禮節。
但是,作者不再更新他的博客。
我嘗試通過TweetViewActivity
停止服務。
@Override
protected void onDestroy() {
super.onDestroy();
try {
api.removeListener(collectorListener);
unbindService(serviceConnection);
} catch (Throwable t) {
// catch any issues, typical for destroy routines
// even if we failed to destroy something, we need to continue destroying
Log.w(TAG, "Failed to unbind from the service", t);
}
// New code added by Cheok. Not working. Not sure why.
this.stopService(intent);
Log.i(TAG, "Activity destroyed");
}
但這並不起作用。我可以看到服務仍在運行。我是否知道,一旦我退出Activity
,停止IPC服務的正確方法是什麼?上述例子的節電策略是什麼?
也許我應該將onDestroy中的所有代碼移動到onStop,如從文章中放置onCreate中的服務創建代碼。 –
那麼,不能保證你的onDestroy/onStop會被調用。系統決策在這裏起着重要作用。我相信你的服務還在運行,因爲系統還沒有真正決定調用你的onDestroy/onStop方法。你可以嘗試onPause()方法。它會工作。 – PH7