LoginSignup
2
1

More than 3 years have passed since last update.

AndroidStudioのAlarmManager実装時に苦戦した点

Last updated at Posted at 2020-07-04

AndroidStudioでAlarmManagerを使う方法について
自分がコードを書いていた時につまずいた点などを踏まえて紹介します。

※Qiita初投稿です、ちょくちょく変なところや違うところがあるかもしれませんが多めにみてください…

AlarmManagerの設定の仕方

今回作るのは何分後(秒、時間、etc...)かに処理するというコードを作ります。
まずは、AlarmManagerの設定の仕方を見ていきます。

重要!

1: AndroidManifestに設定を加えていきます。

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

<uses-permission android:name="android.permission.WAKE_LOCK" />

   <application

        <receiver
            android:name=".AlarmManagerを受け取るクラス."
            android:process=":remote" >
        </receiver>
   </application>
</manifest>

AndroidManifestにuses-permission android:name="android.permission.WAKE_LOCK"
receiver android:name=".AlarmManagerを受け取るクラス"
android:process=":remote"
を書くことでAlarmManagerが動きます。

私は、ここを書くの忘れていてめっちゃ苦労しました。公式サイトもAlarmManagerのところになかったので…

2: AlarmManagerを送るためのIntentを作る

AlarmManagerを置きたいところに.java
    ...
    AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmManagerを受け取る場所.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

    alarmManager.setExact(AlarmManager.RTC_WAKEUP, お好きな時間をミリ秒!」, pendingIntent );

Intentを使って何分後にデータを送るか設定します。
上の3つのコードのcontextは、だいたいgetApplicationContext()となっていることが多いです。
最後の行の第2引数はミリ秒となっていることが多いのでミリ秒で書くことをおすすめします。

3: BroadcastReceiverをextends(継承)したクラスを作成する

AlarmManagerを受け取る場所.java

// BoardcastReceiverを継承
public class AlarmManagerを受け取る場所 extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
     // 作りたい処理を書く
    }
}

BroadcastReceiverを継承してあとはonReceiveメゾットを作ってそこに処理を作ったら完成です。

最後まで見ていただきありがとうございます。
最初なので何かとおかしいところがあれば申し訳ありません。

twitterもやっていますのでフォローしていただければ幸いです。
https://twitter.com/tomfumy_dev

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1