あなたのアプローチは正しいです。
追加する必要がある唯一のことは、DBまたは他の場所でそれを持続することです。ユーザーがものをセットアップして、あなたが対話するたびに AlarmManager
, 、ファイルにも入れます。
あなたが取得するとき BOOT_COMPLETED
, 、データをロードし、以前にすべてのアラームを設定します。
質問
私は問題があります。私はAndroidとJavaを初めて使用しており、電話サウンドをオフにしてユーザー選択した時間にディスプレイを暗くするプログラムを作成しています。ユーザーの入力値(時間と分)を取得し、これらの値に基づいてアラームを設定して、サウンドをオフにしてディスプレイを暗くするサービスを開始するBroadCastReceiverに目的を発射することによって行われます。再起動後にそのアラームを再起動したいと思います。 boot_completedの意図を受け取る別の放送局を単に設定してから、サービスを開始する前に使用される放送局に意図を発射するアラームを設定するだけだと思いました。そして、私の問題は、boot_completedの意図によって開始されるBoradcastReceiverにユーザー入力を取得するアクティビティから値を配置する方法がわからないということです。または、再起動後にユーザー入力に基づいて同じアラームを設定する別の方法はありますか?単に言葉で言えば、ユーザーが設定したアラームと同じ射撃時間で再起動した後、アラームを自動的に設定したいと考えています。私の悪い英語でごめんなさい...
解決
あなたのアプローチは正しいです。
追加する必要がある唯一のことは、DBまたは他の場所でそれを持続することです。ユーザーがものをセットアップして、あなたが対話するたびに AlarmManager
, 、ファイルにも入れます。
あなたが取得するとき BOOT_COMPLETED
, 、データをロードし、以前にすべてのアラームを設定します。
他のヒント
アプリケーションのマニフェスト:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
次に、放送を受信するためにBroadCastReceiverを実装してください。
public class SampleBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// Set the alarm here.
}
}
}
再起動後にアラームを設定するには、共有設定またはDBからアラームの値を選択できます。