• ベストアンサー
  • 困ってます

アンドロイド 最後の画面から始めたい。

アンドロイドでスマホアプリを作ってます。 1つのアプリ内にAとBの2つの画面があります。 最初はAの画面から始まります。 AとBの画面は画面内のボタンを押す事などで、相互に移動できます。 移動は、intentというのを使ってます。移動元の画面はfinishで終了してます。 今、アプリを終了した時にAの画面で終わったら、再開時Aの画面から Bの画面で終わったら再開時Bの画面から始まるようにしようとしてます。 考えてた方法としては、終了(pause)する時に、 SharedPreferencesなどを使ってどの画面で終了したかをキーとして保存し 再開(resume)する時にその画面に移動するという方法ですが、 ボタンでの画面移動の時もresumeが呼ばれるため、上手くいかないことに気づきました。 再開時に終了した画面から始めるにはどのようにするのが良い方法なのでしょうか。 まだかなり初心者です。よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数86
  • ありがとう数11

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • anmochi
  • ベストアンサー率65% (1332/2045)

一番分かりやすい構造は 新たにSTARTUPというアクティビティを作って そいつがresumeでSharedPreferencesを読んで AかBを起動して自分は終わるというものではないだろうか。 これだと、AとBは終了時にSharedPreferencesを書き、 STARTUPは起動時にSharedPreferencesを読む、 という単純な動作になる。 android.intent.category.LAUNCHERに応答するのはSTARTUPになるので、 アイコンやアクティビティ名はしっかり設定しておこう。 Androidは、戻るボタンはアクティブなアクティビティが終了するが、 ホームボタンはホームアプリを起動するまたはアクティブにする (つまりアクティブなアクティビティは終了せずに後ろに隠れるだけ) という動作になるためその違いも考慮に入れる必要があるかも知れない。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お返事が非常に遅くなり申し訳ありません。 方法について理解できました。どうも真にありがとうございます。

関連するQ&A

  • Androidで画面遷移ができません.

    初心者ながら,Android向けにアプリを開発しています. ページXXXXXでボタンを表示させ,ページYYYYYで画像が表示されるようにしたいのですが,ページXXXXXで表示されたボタンを押すとエラーが出て強制終了となってしまいます. 画面遷移されるページ(YYYYY)には,適当な位置にタッチさせるとタッチした位置に移動する画像についてプログラミングしてあります.ページYYYYYは個別で実行すると正常に起動します. どこに原因があるのか教えてください.よろしくお願いします. ページXXXXXのソースは以下のとおりです. 【ソース】 import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.content.Intent; public class XXXXX extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent(XXXXX.this, YYYYY.class); startActivity(intent); } }); } }

    • ベストアンサー
    • Java
  • Androidの画面遷移ができません(その2)

    前回の質問の続きです. 今度はページXXXXXから3つのボタン(AAAAA,BBBBB,CCCCCと仮定)を画面上に表示させ,ボタンに記載された通りの各ページAAAAA,BBBBB,CCCCCに画面遷移しようと考えています. AAAAA,BBBBB,CCCCCにはそれぞれ異なった画像が表示されるようにプログラミングしてあるのですが,すべてのボタンを押してもページAAAAAに画面遷移してしまい困っています. おそらくAndroidManifest.xmlの定義が間違えているのではないかと思っているのですが,どこに原因があるのでしょうか?解答よろしくお願いします. 【AndroidManifest.xml】 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sample.XXXXX" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".XXXXX" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="AAAAA"></activity> <activity android:name="BBBBB"></activity> <activity android:name="CCCCC"></activity> </application> </manifest>

  • androidの画面遷移について

    アンドロイドアプリケーションを開発しています。 アプリで以下のようにA画面から始まり3つのアクティビティを遷移するのですが A画面 → B画面 → C画面  ↑          ↓     ←  ←  ←  C画面からA画面に遷移させようとするとアプリケーションが止まってしまいます。 このとき画面は真っ黒またはA画面になり、タッチしても動作しません。 ログも停止します。 画面はすべてSurfaceViewで作っています。遷移はすべてIntentです。 Intentで同じ画面に戻るとき指定しなければ行けないことや、配慮しなければ いけないことがありましたら、教えてください。 ログも止まってしまうため、手がかりがない状態です。 これらのことが記載されているページや図書がありましたら教えていただけないでしょうか? 以上、よろしくお願いします。

  • Java Android アプリの終了

    Androidアプリを終了させるため finish() ※android:noHistory="true" System.Exit(); android.os.Process.killProcess(android.os.Process.myPid()); moveTaskToBack (bolean); どれを実行させた場合であってもタスクにには残り続けます。 これはAndroidの仕様のようですが、これをWindosなどのように終了は終了としてメモリから消す方法は無いのでしょうか? いくつかのアプリは終了処理によりメモリ上からも消されていることから、方法が無い訳では無いと考えます。 実際のところはどうなのでしょうか?

  • android アプリ終了時にタスクも終了させる

    android アプリを終了させてもタスクが残っています。 つまり□ボタンを押すとタスクが表示されます。 android アプリ終了時にタスクも終了するような操作方法があれば教えてください。 よろしくお願いします。

  • androidで表示される画面の大きさを小さくでき

    androidで表示される画面の大きさを小さくできるアプリはありますか?なるべくルートなしの方法でよろしくお願いします。

  • Androidタブレットのアプリの終わり方

    初歩的な質問かもしれませんが、教えてください。 アプリの終わり方: iPhoneの場合、ボタンダブルクリック、アイコン長押しで、アプリ終了ですが、Androidの場合、アプリ終了はどうやるのでしょうか? SDメモリの取り外す方法: Windowsでは、メディアを取り出すをクリックして、「安全に取り外せます」と表示されてから取り出しますが、Androidの場合、どうやるのでしょう? わからないので、電源を切ってから取り出しましたが、問題ありませんか?

  • Androidで入れたアプリがSDカードに移動不可

    Androidバージョンが6.0のフリーテル社のサムライREIで、 本体の内部ストレージにGooglePlayからインストールしたアプリ をSDカードに移動させようと思ってやろうと思ったら、 なぜかアプリの設定画面に、SDカードに移動というボタンが 全くないんですが、最近のAndroidって本体の内部ストレージに インストールしたアプリをSDカードに移動はできなくなって しまったんですか? 私の持ってる、Androidバージョンが4.3のHuawei社の MediaPad 7 Youth 2だと本体の内部ストレージに GooglePlayからインストールしたアプリをSDカードに 移動できるんです。(※ただし移動できないアプリも一部ある) 本体内部ストレージに入れたアプリをSDカードに 移動する方法ってありますか?

  • androidのアプリ起動中にホームボタン

    android初心者です。 androidのアプリ起動中にホームボタンを押すと、ホームボタンをおすと、 デスクトップになりますが、 アプリは終了したわけでは無いですよね。 (本体設定→アプリケーション→実行中のサービスで見ると残っています) いったいどうやったら、実行中のアプリの画面に戻れるのでしょうか。 わかる方がいらっしゃいましたら教えてください。 ちなみにスマートフォンはドコモのSO-03Dを使っています。

  • Androidで起動中のアプリを一気に終わりにする

    Androidで起動中のアプリを一気に終了する方法はありますか? 現状、ホームボタンを長押しして起動中のアプリ一覧表示させ、ひとつ1つスワイプさせて終了させているのですが、これを一発の操作で全て終了させる方法があったら教えてください。 無ければ無いというご回答でも助かります。