スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android アプリの多重起動禁止



相変わらず、マニュアルとか読まないので今回はじめて知ったこと。


Androidにおけるアプリの多重起動禁止方法 多分ソース的にも回避する方法があるような気がするんですが。
少なくとも簡単に調べた結果、Winアプリみたいにmutex的な排他方法とかは見つかりませんでした。


で、肝心の多重起動禁止方法
・Activity のLaunchモード(launchMode 属性)を変更する
http://developer.android.com/intl/ja/guide/topics/fundamentals.html


起動モードは
・standard(default)
・singleTop
・singleTask
・singleInstance
とあり、とりあえず下二つのいずれかを選択しておけば多重起動はせずに済みそうです。


簡単な方法で一応確認
適当なアクティビティを一つ作って
onCreate ~ onDestroy を実装し、Logだけ吐くように設定
でもって以下のように動作させる。
起動→ホームボタン→再度アプリをメニューから起動(ホーム長押しではない)
ログ見ればすぐに分かりますが、
・standard の場合、onStop のログのあとに onCreate が
・それ以外の場合、onStop のログのあとに onRestart が
当然前者の場合、「戻るボタン」を押して終了したと思いきや、もう一つが現れます。
後者は「戻るボタン」を押せば、デスクトップが表示されます。

singleTop が多重起動しなかったわけは、上記サイトを確認。


というか、ホームボタン長押し→表示されるアプリ一覧から起動でonPause からの復帰というの、今回初めて知ったし・・・。
多分条件次第ではホームボタン長押しからでも多重起動するんじゃないかな?と思います(複数のActivityを抱えるアプリだとありそう)
いやしかし、みんな開発ガイドとか読んでるんかな?
対象の部分が日本語じゃなかったら絶対読んでない・・・。
ついでに言うとなんとなくしか理解していませんがw




2010/01/17 追記
ぐぐってたらこちらのブログの記事でIntentのCategoryとExtraとFlagの一覧表を作られていました。
Intentで呼び出す場合にフラグを考慮すれば、もちろん条件次第でしょうが多重起動は回避できそうです。
勉強になりました。


関連記事

テーマ : グーグルモバイル
ジャンル : 携帯電話・PHS

tag : 多重起動禁止 android

コメントの投稿

非公開コメント

プロフィール

駄猫

Author:駄猫

Twitter
その他
最新記事
カテゴリ
月別アーカイブ
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。