質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

2061閲覧

Android APKインストール時にアクティビティが残る?

sanapapa

総合スコア30

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/09/01 07:43

お世話になっております。

表題の件ですが、AndroidアプリのAPKをESファイルエクスプローラからインストール時に、アクティビティが残る?ような挙動が見受けられます。

具体的なアクションを下記に記載します。

前提:アプリは既にインストール済み(未起動)

①ESファイルエクスプローラからインストール

②そのまま「開く」を押下し、アプリ起動

③スプラッシュ画面が表示され、2秒後、ログイン画面が表示される

④ログインID,パスワードを入力し、ログインボタン押下

⑤アクティビティAへ遷移

⑥ハードのホームボタンを押下しアプリをバッググラウンドへ

⑦アプリアイコンから再度アプリを起動

⑧再度スプラッシュ画面が表示され、2秒後、ログイン画面が表示される(ここで既におかしい。本来、アクティビティAに戻るよう設定しているはず。)

⑨ハードのバックボタンを押下

⑩アクティビティAへ遷移(ここが問題。ログイン画面で戻るとアプリは終了するはず。これはおそらく前回のアクティビティ。)

⑪再度ハードのバックボタンを押下

⑫アプリ終了

以上になります。
上記手順を行うと、アクティビティもすべて消えるため、想定通りの挙動になるのですが
APKインストール直後のみ、アプリを終了させるまでこのような挙動が起こります。

長文になり申し訳ありませんが、最後に怪しいと思われる設定を記載します。

AndroidManifest.xml(一部) <!-- スプラッシュ画面 --> <activity android:launchMode="standard" android:name=".StartActivity" android:label="@string/app_name" android:noHistory="true" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- ログイン画面 --> <activity android:name=".LoginActivity" android:label="@string/app_name" android:screenOrientation="sensor" android:noHistory="true" android:theme="@style/Theme.AppCompat.Light.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden"></activity> <!-- メイン画面 --> <activity android:launchMode="standard" android:name=".MainActivity" android:label="@string/title_activity_main" android:screenOrientation="sensor" android:theme="@style/Theme.AppCompat.Light.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden" />

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

http://d.hatena.ne.jp/kk_Ataka/20130804/1375624170
こちらの記事の通り、スプラッシュ画面のonCreateに処理を追加したところ、期待通りの動きになりました。

投稿2016/09/02 08:28

sanapapa

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2016/09/01 16:30

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanapapa

2016/09/02 07:06

私の場合、APKインストール直後のみの挙動なんですよね。
yona

2016/09/02 07:18

なるほど、 では別のファイルエクスプローラーからやったら起きないんですか?
sanapapa

2016/09/02 07:27

いえ、DropBoxからの場合でも起きますし、 Intentに application/vnd.android.package-archive を設定し、自動アップデートを行った場合でも起きます。 なので、ダウンロード媒体ではなく、アプリ側の問題で間違いなさそうなのですが。 書き方が悪かったですが、そもそもアクティビティが残るのが問題というよりは、⑧でアプリが再起動されるのがおかしいです。 アイコンランチャーをタップした場合でも、中断中のバックグラウンドタスクに戻るよう、設定しているつもりなのですが。
sanapapa

2016/09/02 07:35

Androidのハードキーでバックグラウンドタスク一覧を表示できますが、そこからアプリを選択すると、中断中のアクティビティに戻りますよね? ただ、ホームボタンを押して、アプリランチャーからの起動すると、アプリ自体が再起動してしまいます。 ホームボタンの挙動をバックグラウンドタスク一覧からアプリを選択したときの挙動によせて、動作を統一させています。(させているつもりでした) マニフェストのlaunchMode=standardと、nohistory=trueがその部分なのですが。
sanapapa

2016/09/02 08:14

②でインストールダイアログから開くを押した場合、実は通常とは別タスクで起動されていたりするのでしょうか。。
sanapapa

2016/09/02 08:57

独り言の末、勝手に自己解決してしまいました。 yonaさんにはいつもお世話になります。 またよろしくお願いします。
yona

2016/09/02 10:35

ログキャットでIntentのフラグを確認して貰えばよかったですねorz あと、これはエクスプローラーやホームアプリの仕様に依存するので端末依存やアプリ依存があり、根が深そうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問