2012-05-13 8 views
0

私はAndroidアプリケーションにメニューを持っています。新しいアクティビティを開始するためにボタンの1つをクリックすると、私はメニューに戻り、もう一度それを開始します。 これは私が試したものです:Androidのインテント/アクティビティの同じ「インスタンス」に行く

public void onClick(View v) { 

      Bundle b = new Bundle(); 
      b.putBoolean("isFav",false); 
      centralsIntent = new Intent("kth.blod.CENTRALS"); 
      centralsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
      centralsIntent.putExtras(b); 

      startActivity(centralsIntent); 
     } 

とマニフェストに:

android:launchMode="singleTop" 
+0

は戻って、メニューの活動へのお電話でこの意図を試してみてください。そうしても、まだ実行中の場合は再インスタンス化されません。 – Ostkontentitan

答えて

0

私は共有設定は、あなたのアプリケーションの一部に設定された値を追跡するための最も簡単な方法だと思いますアプリケーションの別の部分から戻ったときに保存したり、変更したりする場合があります。 Shared Preferencesのリンクを参照してください。実装方法については、this linkを参照してください。がんばろう!

+0

私が保存したい値は、実際にはクラスのインスタンスであり、オブジェクトのリストを含んでいます。これらのオブジェクトはオンラインコンテンツで満たされており、誰かがメニューに戻るたびに、そのコンテンツを再度取得する必要はありません。共有設定は文字列とintを渡すだけです。 – Rickard

0

私はあなたの質問で混乱しています。 「私はメニューがあります」と言うと、主なアクティビティ(または最初のアクティビティ)がメニューであることを意味しますか?その場合、ユーザーはメニューから選択することができ、新しい活動を開始することができます。の上にメニューアクティビティが表示されます。メニューアクティビティでfinish()と呼んでいない限り、(通常の場合は)元に戻りません。また、ユーザがそれに戻ると、すべてのインスタンス変数には、ユーザが新しいアクティビティを開始したときにあったものが含まれます。また、launchMode = 'singleTop'これは標準の標準動作であるため、これは必要ありません。 FLAG_ACTIVITY_CLEAR_TOP:

それとも私は完全にあなたの問題が何であるかを理解していない...

+0

はい、メニューはメインのアクティビティです。コンテンツアクティビティから戻るとメニューアクティビティに戻ります。しかし、コンテンツアクティビティを再び開始すると、THATアクティビティの情報は失われます。これは、コンテンツアクティビティで保存したい情報です。ですから、私はコンテンツアクティビティと同じ "インスタンス"を開始したいと思います。 – Rickard

+0

それでは、コンテンツアクティビティでは、その状態をどこかに保存する必要があります。私は@ thomas.cloudに同意します。共有環境設定はこれを行うための合理的な場所です。あるいは、これらのことをファイルに書き込むこともできます。保存するオブジェクトに適したバイトストリームまたは文字列に保存するオブジェクトをシリアル化する必要があります。 –

+0

これはスマートフォンの操作をあまり消費しませんか?主に私は3人のarraylistsクラスを持っていて、それぞれに5-10個のオブジェクトがあります。各オブジェクトに〜10文字列があります。疑問が愚かであれば私を許してください。しかし私はそれを試していません。 クラスのインスタンス全体を共有プリファレンスとして渡すことはできますか? – Rickard

関連する問題