2016-12-18 3 views
1

AlarmManagerでアラームをスケジュール設定しようとしています。私のアプリがフォルダに保存したファイルを削除するには、古いものから始めて一度に一定量だけ削除してください。私はthis linkを読んでいますが、私はある時点で混乱しています。デバイスがAlarmManagerで起動したときにアラームを起動するにはどうすればよいですか?

ステップ2スタート下アラームデバイスのブーツ

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. 
 
     } 
 
    } 
 
}

、コードは、私は混乱しましたところだ//Set the alarm here.

に述べています。私の特定の状況に合わせて、どの部分を変更しますか?

また、私はこのコードをどこにアプリケーションに置くべきかについています。私はそれが私のAndroidManifestにあると確信していますが、<applicationセクションの下か、それとも独自のカテゴリの下ですか?

スクリーンショットは非常に役立ちます。ありがとうございました。私はAndroid Studio 2.2.2を使用しています。私のアプリはAndroid 4.4用です。

+0

「//アラームをここに設定する」とは、電話が起動するたびに実行するコードです。定期的に実行し、一定の間隔でタスクを実行するためにそこにアラームを開始したいですか? –

+0

私は本当にそれを考えすぎました。はい、私は定期的に実行し、一定の間隔であなたの仕事を実行するためにそこにアラームを開始したいと思います。 – Rosa1995

+0

いいえ私は答えで更新する –

答えて

1

あなたの場合、BroadcastReceiverを拡張するSampleBootReceiverクラスは別のクラスファイルにあります。電話が起動されるたびにそれは限り、あなたはまた、あなたのマニフェストにインテントフィルタを持っているように、このような、onReceive()方法であるものは何でもコードを実行します:

<receiver 
     android:name=".SampleBootReceiver" 
     android:enabled="true" 
     android:exported="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
</receiver> 

は、次に、あなたのAlarmManagerを開始したいと思うでしょう。 BroadcastReceiveronReceive()メソッドまたはBroadcastReceiverから開始される別のサービスで行うことができます。このアラームはhourToStartminuteToStartに設定されているものは何でも時から始まる15分の間隔で別のBroadcastReceiverNewReceiver、火を行います

// Make the intent to fire NewReciever 
     Intent intent= new Intent(getApplicationContext(), NewReceiver.class); 

     // Make PendingIntent to be triggered each time the alarm goes off 
     final PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, 
       intentDayAlarmStart, 0); 

     //setup calendar object for alarm start time 
     Calendar cal= Calendar.getInstance(); 
     cal.setTimeInMillis(System.currentTimeMillis()); 

     cal.set(Calendar.HOUR_OF_DAY, hourToStart); 
     cal.set(Calendar.MINUTE, minuteToStart); 
     cal.set(Calendar.SECOND, 0); 

     //make the alarm 
     AlarmManager morningAlarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 

     //(type, starttime, interval, pintent) 
     morningAlarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, dailyCalendar.getTimeInMillis(), 
       AlarmManager.INTERVAL_FIFTEEN_MINUTES, pIntent); 

は、アラームを起動します。あなたのマニフェストにその新しい受信機を設定するだけです!

+0

申し訳ありませんが、私は最近脳腫瘍から回復しており、これもすべて学習し始めたので、私は非常に混乱しています。あなたはおそらく、このコードをAndroidスタジオ内の自分のアプリに配置する方法のスクリーンショットを持っていますか?ああ、答えに感謝します。 :) – Rosa1995

+0

あなたがGitHubにあなたのプロジェクトを手に入れることができれば、私はそれを引き出して変更をコミットすることができます。 –

+0

私は文字通り、Android Studioから提供される一般的な開始コード以外は何も持っていません.GitHubの使い方はわかりませんが、[this](https://github.com/ReiSixx9/AndroidMonitor.git)を開始しました。 – Rosa1995

関連する問題