タグ付けされた質問 「alarmmanager」

9
アラームマネージャの例
プロジェクトにスケジュール機能を実装したい。だから私はアラームマネージャープログラムを探しましたが、例を見つけることができません。 誰でも基本的なアラームマネージャープログラムを手伝ってくれる?

10
AlarmManagerにすでにアラームが設定されているかどうかを確認するにはどうすればよいですか?
アプリが起動したら、特定のアラーム(AlarmManagerを介して登録されている)がすでに設定され、実行されているかどうかを確認したいと思います。グーグルからの結果は、これを行う方法がないことを示しているようです。これはまだ正しいですか?新しいアラームを作成するアクションが実行される前にユーザーに通知するために、このチェックを行う必要があります。

9
アクティビティの外部からstartActivity()を呼び出していますか?
を使用しAlarmManagerて、シグナルをブロードキャストするインテントをトリガーしています。以下は私のコードです: AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(this, Wakeup.class); try { PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); Long elapsed += // sleep time; mgr.set(AlarmManager.RTC_WAKEUP, elapsed, pi); } catch(Exception r) { Log.v(TAG, "RunTimeException: " + r); } 私はからこのコードを呼び出しているActivityので、次のエラーがどのように発生するのかわかりません... ERROR/AndroidRuntime(7557): java.lang.RuntimeException: Unable to start receiver com.wcc.Wakeup: android.util.AndroidRuntimeException: Calling …

5
PendingIntentで使用される「requestCode」は何ですか?
バックグラウンド: AlarmManager経由のアラームにPendingIntentを使用しています。 問題: 最初は、以前のものをキャンセルするために、アラームを開始する前に使用した正確なrequestCodeを提供する必要があると思いました。 しかし、キャンセルAPIが言うように、私は間違っていることがわかりました。 インテントが一致するアラームを削除します。(filterEquals(Intent)で定義されているように)Intentがこのアラームと一致する任意のタイプのアラームはキャンセルされます。 「filterEquals」を見て、ドキュメントは言う: インテント解決(フィルタリング)の目的で、2つのインテントが同じかどうかを判断します。つまり、アクション、データ、タイプ、クラス、およびカテゴリーが同じである場合です。これは、インテントに含まれる追加データを比較しません。 「requestCode」が何のためにあるのかわかりません... 質問: 「requestCode」は何に使用されますか? 同じ「requestCode」で複数のアラームを作成するとどうなりますか?それらは互いに上書きしますか?


5
Android AlarmManager-RTC_WAKEUP vs ELAPSED_REALTIME_WAKEUP
誰かがAlarmManager.RTC_WAKEUPとの違いを私に説明できますかAlarmManager.ELAPSED_REALTIME_WAKEUP?ドキュメントを読みましたが、どちらか一方を使用することの意味をまだよく理解していません。 コード例: alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, scheduledAlarmTime, pendingIntent); alarmManager.set(AlarmManager.RTC_WAKEUP, scheduledAlarmTime, pendingIntent); 2行のコードの実行はどのように異なりますか?これらの2行のコードはいつ相互に実行されますか? 私はあなたの助けに感謝します。

14
AlarmManagerが複数のデバイスで機能しない
私のアプリはAlarmManagerを使用しており、4年前から機能しています。しかし、一部のデバイスで失敗し始めたことに気づきました。 コードは正しいと確信しています(Dozeを搭載したデバイスにはWakefulBroadcastReceiverとsetExactAndAllowWhileIdleを使用しています)。Nexusデバイスでは完全に機能しますが、一部のメーカー(Huawei、Xiaomi ...)のデバイスでは失敗します。 たとえば、Huaweiデバイスには、アプリを強制終了する一種のバッテリーマネージャーがあり、アプリが強制終了されると、スケジュールされたアラームがキャンセルされます。そのため、Huaweiバッテリーマネージャーでアプリを「保護」に設定すると、問題が解決します。 しかし最近、Xiaomi、Samsung(おそらく新しい「SmartManager」に関連しているのでしょうか?)など、より多くのデバイスで動作していないことに気付きました...この動作は標準になりつつあるようです:バックグラウンドアプリを強制終了します。 誰かがそれについて何か知っていますか?アラームが鳴ることを確認する方法はありますか? 編集:この問題は、さまざまなメーカーによって追加された「バッテリーセーバー」が原因で発生します。詳細はこちら:https://dontkillmyapp.com/

6
Androidのすべての最新の制限の後、正確な時間にスケジュールされるようにアラームを設定するにはどうすればよいですか?
注:StackOverflowでここに記述されているさまざまなソリューションを試しました(ここの例)。あなたが見つけたものからのあなたの解決策が私が以下に書いたテストを使用して機能するかどうかをチェックせずにこれを閉じないでください。 バックグラウンド アプリには、ユーザーがリマインダーを特定の時間にスケジュールするように設定するという要件があります。そのため、この時間にアプリがトリガーされると、バックグラウンドで小さな処理が行われ(DBクエリ操作のみ)、リマインダーについて伝えるための簡単な通知。 以前は、単純なコードを使用して、比較的特定の時間にスケジュールされるものを設定していました。 val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager val pendingIntent = PendingIntent.getBroadcast(context, requestId, Intent(context, AlarmReceiver::class.java), PendingIntent.FLAG_UPDATE_CURRENT) when { VERSION.SDK_INT >= VERSION_CODES.KITKAT -> alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeToTrigger, pendingIntent) else -> alarmManager.set(AlarmManager.RTC_WAKEUP, timeToTrigger, pendingIntent) } class AlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { Log.d("AppLog", "AlarmReceiver onReceive") //do something …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.