[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で起動する

(っ´∀`)っ < 単刀直入に言っていただきました。

    ↓いつもありがとうございます★ポチは更新の励みになります★↓
  • Twitter
  • にほんブログ村 鳥ブログ セキセイインコへ
  プロフィール  PR:無料HP  スルガ自動車学校  給与滞納  Webデザイン 専門学校  エンドレス・アドバンス  タイヤ 寿命  タイヤ 取り付け  建築 専門学校  マツダ  民泊 運用  改装工事  投資顧問ベストプランナー  中古ホイール 豊橋市  バイアグラ 評判