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

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

ただいまの
回答率

90.50%

  • Android

    7095questions

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

  • Android Studio

    4174questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 608

sanapapa

score 10

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

表題の件ですが、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" />
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/02 16:06

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

    キャンセル

  • 2016/09/02 16:18

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

    キャンセル

  • 2016/09/02 16:27

    いえ、DropBoxからの場合でも起きますし、
    Intentに application/vnd.android.package-archive を設定し、自動アップデートを行った場合でも起きます。
    なので、ダウンロード媒体ではなく、アプリ側の問題で間違いなさそうなのですが。

    書き方が悪かったですが、そもそもアクティビティが残るのが問題というよりは、⑧でアプリが再起動されるのがおかしいです。
    アイコンランチャーをタップした場合でも、中断中のバックグラウンドタスクに戻るよう、設定しているつもりなのですが。

    キャンセル

  • 2016/09/02 16:35

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

    キャンセル

  • 2016/09/02 17:14

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

    キャンセル

  • 2016/09/02 17:57

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

    キャンセル

  • 2016/09/02 19:35

    ログキャットでIntentのフラグを確認して貰えばよかったですねorz

    あと、これはエクスプローラーやホームアプリの仕様に依存するので端末依存やアプリ依存があり、根が深そうですね。

    キャンセル

同じタグがついた質問を見る

  • Android

    7095questions

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

  • Android Studio

    4174questions

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