2017-03-10 1 views
-2

具体的には、私の質問は:Androidアプリケーションのメモリモデルは何ですか?なぜ私は、活動から別の活動に意図を介してデータを渡さなければならないのですか?アプリケーションプロセス全体が共有メモリを持っていませんか?私はこのウェブ上の良いリソースに感謝しています!Androidのアクティビティは、インテントエクストラでデータを渡す必要があるのはなぜですか?

答えて

0

一般的なアプリケーションは1つのプロセスに含まれていますが、Javaアプリケーションと同様に、アプリケーションのさまざまなオブジェクト/クラスには独自のアクセス制限があります。それぞれのアクティビティは別々のクラスであり、すべてを公開することはお勧めできません。したがって、必要なものを回すことができます。

もう1つの理由は、別のアクティビティを起動し、最初のアクティビティをもうメモリに残したくない場合があることです。したがって、最初の人は必要なものを渡してから破壊することができます。

0

まず、アクティビティを開始するには、インテントを使用する必要があります。なぜなら、インテントを利用してそのデータをインテントで渡すのはなぜですか。

共有メモリについては、実際には、重要なデータを保存してHashMapのようにアクセスできるSharedPreferencesというAndroidのインターフェースがあります。

Editor tEditor = SharedPreferences.edit(); tEditor.putString("key", "value"); tEditor.apply();

をそしてあなたは、このような保存されたデータを取り出すことができます:あなたはこのようにデータを保存することができます

SharedPreferences.getString("key", ""); 

あなたはSharedPreferencesに関するいくつかのより多くを学ぶことができhere

関連する問題