読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

ウィジェットからActivityを起動するとき

Android


ウィジェットをタッチすることでActivityを起動したりすることがあると思いますが、自分がハマったことをメモしておきます。
Activityの起動自体に問題はないのですが、起動方法でハマりました。


まず現象としては
【1】通常通りアプリを起動(a) → ホームキー → ウィジェットから起動(b)
【2】ウィジェットからアプリを起動(c) → ホームキー → 通常通りアプリを起動(d)


上のようにやると(a)と(c)のスタックが残っていて(b)と(d)でバックキーで戻ったら、
それぞれ(a)と(c)のActivityに戻ってしまいます。


これをウィジェットから起動した時も通常アプリから起動したように、
(b)と(d)でバックキーを押したら普通にアプリが終了するようにします。

Intent intent = new Intent(this, HogeActivity.class);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setAction(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

上のようにActivityをウィジェット側から起動すればOKです。


参考:
ホーム画面に戻る前に表示していた画面を表示するには -
日本Androidの会 |
Google Groups


こういうのをググる時はどういうワードで検索すればいいかが難しいですよねぇ。
結構時間が掛かってしまいました。