2013-07-22 20 views
6

私は時間をかけて狂気を覚える人々を思い出させるAppを作成しました。 Google Playに新しいAPKを配置するたびに、アラームがもう機能しなくなるという苦情を多く受けます。 ユーザーがアプリケーションを起動(または再起動)した後で初めて作業を開始します。 ヘルプ!Google Playのアップデート後にAndroid AlarmManagerが起動しない

+0

サービスやアラームを含めて更新してください。更新後にアプリを開くように指示する必要があるため、必要なサービスやアラームを開始する機会が与えられます。 –

+0

ええ、あなたはかなりここにこだわっています。 http://stackoverflow.com/questions/8531926/how-to-start-a-service-when-apk-is-installed-for-the-first-time/8535062#8535062 – roostertech

答えて

8

ACTION_MY_PACKAGE_REPLACEDインテントアクション(ハニカム以上)を確認してください。

ブロードキャストレシーバーをマニフェストに登録して、アラームを再スケジュールできるようにする必要があります。

+0

Studio 1.0でコンテキストヘルプを使用すると私はこのandroid.intent.action.PACKAGE_REPLACEDだけを見る。私はandroid.intent.action.ACTION_MY_PACKAGE_REPLACEDを見ていません。最初のものを使うのは大丈夫ですか? 私はAPI16の後でのみサポートしています – user2731584

+0

minSdkVersion 16とtargetSdkVersion 21はありますか? – orip

+0

はい、最小SDKは16、最大値は21です。 – user2731584

3

予定のアラームはアップグレード時にキャンセルされません。 Androidバージョン2.2と4.3、および書き込み時には最新のGoogle Playでこれを確認しました。

あなたが確認しなければならないことは、あなたの新しいバージョンが古いバージョンのすべての保留中の意図を処理できることです。それは意味:

  • マニフェスト(放送受信機またはサービス)
  • 同じ趣旨「契約」で同じターゲット定義:アクション、エキストラなど
アプリをするために停止されていたであろう
+1

実際にはアラームはキャンセルされません。もう一度リセットする – AnasBakez

+2

これは間違っています。アラームはもはやキャンセルされません。証明しますか?ソースを見てください:http://grepcode.com/file/repo1.maven.org/maven2/org.robolectric/android-all/4.3_r2-robolectric-0/com/android/server/AlarmManagerService.java#AlarmManagerService。 UninstallReceiver – sooniln

+2

@soonilnあなたは正しいですが、あなたのリンクはRobolectricのソースコードを指しています。 Androidソースコード(http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.2_r1/com/android/server/AlarmManagerService)へのリンクです。 java /#1902 – Eliezer

関連する問題