安裝後重新啓動
回答
最有可能的是答案是不是,你不能從你的應用程序做這樣的事情。這是持有手機的用戶的唯一特權(也可能是核心系統服務)。
但是,您可以確保在用戶啓動主要活動時啓動服務,這將在用戶安裝應用程序後立即執行。
有關更多信息,請參閱How to start android service on installation問題,這實際上是您應該嘗試做的。
好的,安裝後可能會留下一條消息,向用戶顯示他必須重新啓動? – user902131
你爲什麼要用戶重啓手機?你不只是想確保你的服務開始了嗎?如果是這樣,只需留給用戶,以便在需要時啓動應用程序(並因此提供服務)。 –
在用戶首次從主屏幕啓動它之前,無法以任何方式讓應用程序在安裝完成後立即執行任何操作。沒有可以明確監聽的廣播動作。但是,你可以聽的東西一般被調用了很多,如:
android.intent.action.USER_PRESENT
,android.intent.action.SCREEN_OFF
,或android.intent.action.SCREEN_ON
在任何情況下你不應該重新啓動設備。你的用戶會追捕你並用石頭殺死你。一邊開玩笑,谷歌可能真的從市場上拉你的應用程序。只要監聽上述操作之一,檢查應用程序是否剛剛安裝(例如,使用一次布爾首選項)並啓動該服務。
注意:如果您確實最終收聽上述操作之一,請在第一次收到意圖時停用接收器。你可以這樣做,像這樣(在你的接收器):
public class FirstTimeReceiver extends BroadcastReceiver {
public void onReceive (Context context, Intent intent) {
// start your service (which does stuff asynchronously, of course, and then:
final ComponentName mySelf = new ComponentName(context, FirstTimeReceiver.class);
context.getPackageManager().setComponentEnabledSetting(mySelf, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
}
但是,你應該只當不知何故該服務是針對用戶(很少有合適的場景本)是絕對關鍵的做到這一點,而不是爲你/你的應用程序。作爲bjarkef提到,你應該只在用戶從主屏幕啓動你的應用程序後啓動它(更好的是,請求用戶許可來運行該服務)。
thx 4你的幫助。我會嘗試這種方式,而無需重新啓動:-)你是對的,它對用戶更好 – user902131
是否TIME_TICK廣播意圖可以是一個很好的方式來啓動服務儘快? –
請記住在像這樣的意圖啓動服務後立即取消註冊接收器,以免不必要地減慢用戶電話的速度。 –
- 1. 安裝後重新啓動設備
- 2. 安裝後重新啓動tomcat
- 3. 重新啓動後WiX刻錄/強制重啓繼續安裝
- 4. 應用程序從SDCard安裝並重新啓動後重新啓動背景
- 5. 安裝新模塊後IPython內核重新啓動
- 6. 安裝Windows更新後檢查重新啓動狀態的Powershell
- 7. 電腦無法啓動後新鮮重新安裝windows
- 8. 在禁用啓動器活動後,android重新安裝失敗
- 9. NFS安裝掛起重新啓動
- 10. 重新啓動後重新啓動
- 11. 安裝Windows服務後重新啓動計算機
- 12. 重新啓動後恢復安裝程序
- 13. Windows安裝程序 - 升級後重新啓動
- 14. 重新啓動後當前沒有安裝rails
- 15. 繼續在WiX中重新啓動後安裝
- 16. Apache安裝PHP後無法重新啓動
- 17. 如何在win_chocolatey安裝後重新啓動
- 18. TeamCity安裝成功,但在關機後無法重新啓動
- 19. 如何在安裝gem後重新啓動Ruby?
- 20. 使用setup.py安裝後導入python包,而不重新啓動?
- 21. 安裝或升級應用程序後重新啓動iPhone
- 22. InstallShield - 安裝完成後重新啓動選項
- 23. 如何使用cmake安裝NSIS後要求重新啓動
- 24. 安裝後提示重新啓動消息WIX引導程序
- 25. WiX - 修改已安裝產品後重新啓動服務
- 26. 安裝腳本運行,然後重新啓動並繼續
- 27. 全局npm在重新啓動終端後安裝中斷
- 28. 安裝.apk文件後,爲什麼Android 2.2會重新啓動?
- 29. 如何在Installshield Express中安裝後要求重新啓動?
- 30. Inno安裝程序:在安裝過程中重新啓動
這聽起來是一種不好的方式來處理這個問題,我相信你可以確保服務被加載而不需要重新啓動設備 – Pierre
可能與http://stackoverflow.com/questions/2127044/how-to重複-start-android-service-on-installation –
@Emmanuel:我不會說重複的,問題是另一個問題,但正確的方法是去做另一個問題。 –