2011年5月26日木曜日

android PendingIntentについて

概要

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 件のコメント:

コメントを投稿