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

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

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

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

Q&A

1回答

4894閲覧

ホームボタン押下からのアプリ復帰について

ko-hatanaka

総合スコア45

Android

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

1グッド

2クリップ

投稿2015/10/08 10:03

現在、Activityが2つあるアプリケーションの開発を行っております。
Activity1→(遷移)→Activity2

Activity2を表示させた状態でホームボタンを押下しバックグラウンドに回した際に、
以下のような動作をさせたいと考えています。

①アプリアイコンをタップ→Activity2に復帰
②USB機器接続時→Activity1を表示(ただし、2重起動したくない)

マニフェストファイルで以下のように設定して①は実現できましたが、②を行った際に2重起動となってしまいます。
※表示はActivity1が表示されます。

XML

1<activity 2 android:name="Activity2" 3 android:launchMode="singleTop"> 4</activity> 5<activity 6 android:name="Activity1" 7 android:launchMode="singleTop"> 8 <intent-filter> 9 <action 10 android:name="android.intent.action.MAIN" /> 11 <action 12 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 13 <category 14 android:name="android.intent.category.LAUNCHER" /> 15 </intent-filter> 16</activity>

①②双方を実現できるような方法をご教授いただけないでしょうか?
よろしくお願い致します。

補足)
SingleTop→SingleTaskに変更などはやってみましたが、①の動作をした際にActivity1が表示されてしまいました。

jer👍を押しています

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

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

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

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

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

guest

回答1

0

ラフな感じに実装するならこんな感じでしょうか。

java

1boolean isBackPressed = false; 2 3public void onResume() { 4 super.onResume(); 5 if(isBackPressed == false){ 6 if (getSystemService(Context.USB_SERVICE) != null){ 7 //USB接続時のActivityにintent 8 } else { 9 //復帰時の時のActivityにintent 10 } 11 } 12} 13 14public boolean onKeyDown(int keyCode, KeyEvent event) { 15 if(keyCode == KeyEvent.KEYCODE_BACK){ 16 isBackPressed = true; 17 } 18 return super.onKeyDown(keyCode, event); 19}

onResumeはアクティビティが再開した時に
起動するメソッドですが、戻るボタンを押された時にも発動しちゃうんですよね。
なので、戻るボタンが押された時には処理を発動しないようにしてます。

投稿2015/10/08 12:42

SKYYFISH

総合スコア654

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

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

ko-hatanaka

2015/10/09 01:25

ご回答ありがとうございます。 SigleTaskにして起動をし直すということでしょうか。 申し訳ありませんが、アプリアイコンタップからの起動時はActivity2の処理を中断しないようにはできませんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問