2017-09-11 5 views
-1

私はアクティビティAを持っています。これは、レコードを挿入するBを開くボタンがあります。 Aは、onActivityResult内のビューを更新することができます。これは正常な流れです。Androidのアクティビティがリフレッシュされます。

ただし、Bはシェアインテントを受け入れてレコードを挿入することもできます。このアクションがBから行われたときに、Aはどのようにして通常のフローのようにビューを更新するのですか? (もちろん、私はすでにAバックグラウンドタスクで動作していると仮定します)

もちろん、A内のonResumeを使って変更を検出することはできますが、適切な方法であるかどうかを知りたいと思います。 ありがとう

答えて

0

アクティビティAのビューを更新するには、onResumeを使用できます。他の方法では、broadcastReceiverとbroadcastIntentを使用するため、不必要な負荷が発生する可能性があります。

あなたはデータがアクティビティBに変更し、その後、活動AのonResumeで共有好みとビューをリフレッシュ

@Override 
protected void onResume() { 
    super.onResume(); 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    boolean isChanged = sharedPreferences.getBoolean("isChanged",false); 
    if(isChanged){ 
     //refresh your views 
     //clear the shared prefernce 
     SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit(); 
     editor.putBoolean("isChanged",false); 
     editor.apply(); 
    } 
} 

あなたはActivityBの間で共有されていることが設定されています覚えていることをフェッチされた場合は保存するためにsharedPreferenceを使用することができます

データを読み込む

SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit(); 
    editor.putBoolean("isChanged",true); 
    editor.apply();