[BroadcastReceiver]からActivityの起動
(っ´∀`)っ < うーん難しかったです。
# BroadcastReceiverを継承したクラス
Intent it = new Intent(con,ShowMessage.class); // 明示的インテント it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //★POINT★ it.putExtra("MESSAGE",message); con.startActivity(it);
# 起動したいActivity(同じプロジェクト内に存在する)
Bundle extras=getIntent().getExtras(); if (extras!=null) { msg = extras.getString("MESSAGE"); }else{ Log.d("***msg**","メッセージなし"); }
(っ´∀`)っ < できた!でも・・・謎。
(っ´∀`)っ < setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); って何ぞ?
# Activityを新たに起動する時はこのフラグを立てないとActivityが起動しない。
http://d.hatena.ne.jp/eryngii_mori/20100520/1274357535
なのでsetFlags(Intent.FLAG_ACTIVITY_NEW_TASK);を使う。
この引数を指定することで別タスクとして起動するように指定する。
(っ´∀`)っ < たすく?ラスク?おいしそうだね。
(っ´∀`)っ < 理解力が残念なワタクシにもう少し噛み砕いてほしい。
# 参考サイト(タスクについて)
http://news.livedoor.com/article/detail/5501359/
# 参考サイト(なぜ別タスクに?)
http://blog.imho.jp/2011/07/activityintent.html
=結論=
★下記のサイトによると、
Activity 以外から Intent で Activity を呼び出すには FLAG_ACTIVITY_NEW_TASK をセットする必要がある。
だそうです。メモメモ_((¢(・∀・ )
# 参考サイト
BroadcastReceiverからActivityをIntentで起動する
(っ´∀`)っ < 単刀直入に言っていただきました。