2017-04-14 127 views
0

我的Android應用程序利用了當前應用程序打開(並且服務當前未運行)或設備重新啓動時觸發的服務。當應用程序從Play Store更新時重新啓動服務

當我發佈在谷歌的第一個更新播放我注意到,在更新從谷歌應用程序的設備上播放,應用程序的通過我的服務中設置的功能停止工作,直到我打開應用程序一次或重新啓動我的設備。

因此,我在Google Play上發佈了一條消息,要求我所有使用這些功能的當前用戶重新打開應用程序,以便重新開始工作。

我現在計劃推出另一個更新我的應用程序,但是這一次,我會莫名其妙地喜歡要麼使服務堅持在應用程序更新重新啓動的應用程序更新服務不強迫任何用戶操作,以便現有用戶在使用我的應用程序時不會遇到任何問題。

任何解決方案有/無代碼將不勝感激。

+0

PackageManager發送應用程序更新廣播。特別是,'android.intent.action.MY_PACKAGE_REPLACED'意圖廣播可用於在應用程序更新時獲取通知。您可以從您的服務/應用程序接收此廣播並基於此重新啓動您的服務。 https://developer.android.com/reference/android/content/Intent.html#ACTION_MY_PACKAGE_REPLACED – iVoid

+0

http://stackoverflow.com/questions/30727953/android-app-update-broadcast。 –

回答

0

作爲用戶iVoid評論,您可以聽android.intent.action.MY_PACKAGE_REPLACED意圖。創建BroadcastReceiver並確保您收聽。

在你AndroidManifest.xml你聲明BroadcastReceiver

<receiver android:name=".MyReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> 
    </intent-filter> 
</receiver> 

而在你MyReceiver類,你可以做任何你想做的事,例如像重新啓動服務。

public class MyReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     ... 
    } 
} 
相關問題