概要 †
PendingIntent?とは、Intentを即時発行するのではなく、タイミングを指定して発行することが出来る仕組みです。
· タイミングとしては下記2つを指定することができます。
o 時間を指定して発行する
o イベント発生時に発行する
· インテントは以下の3つの機能に対して投げることができます。
o アクティビティ(getActivityメソッド)
o サービス(getServiceメソッド)
o ブロードキャスト(getBroadastメソッド)
詳細 †
インスタンスの生成方法 †
コンストラクタではなく、以下の3つのメソッドによってインスタンスが生成されます。
· getActivity(Context, int, Intent, int)
· getBroadcast(Context, int, Intent, int)
· getService(Context, int, Intent, int);
詳細 †
N秒後に別のActivityに遷移したい場合 †
以下の例の様な遷移を行いたい場合、
A Activity → A Activityを表示しながら3秒後に明示的Intentを実行 → B Activity
ソースコードは以下の様になります。
Intent nextintent = new Intent().setClass(this, TopActivity.class); // 明示的Intent
PendingIntent sender = PendingIntent.getActivity(this, 0, nextintent, PendingIntent.FLAG_UPDATE_CURRENT); // PendingIntentインスタンス生成
long alarmTime = System.currentTimeMillis() + 3000; // 現在時刻から3秒後を取得
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); // AlarmManagerインスタンスを生成
am.set(AlarmManager.RTC_WAKEUP, alarmTime, sender); // 5秒後に実行されるようにセット
参考URL †
· android.app.PendingIntent?
o http://developer.android.com/intl/ja/reference/android/app/PendingIntent.html
0 件のコメント:
コメントを投稿