0
問題: MainActivityで、XML Parserを使用してインターネットからデータをダウンロードし始めます。このデータは、アプリケーションのすべての画面に表示されます。それはデータベースのようなものです。現在のフォアグラウンドアクティビティを検出してリロードする
データをダウンロードして保存するときに、アプリケーションのユーザーが穴のアプリケーションをナビゲートできます。データのダウンロードと保存が完了したら、現在のフォアグラウンドアクティビティを検出してリロードします。私は新しいデータを表示するためにこれを行う必要があります。
ActivityManagerを使用して現在のアクティビティを検出し、メソッドstartActivity(Intent.makeMainActivity(componentName))を使用してComponentNameを使用して開始できますが、その後もActionBar-戻るボタン。 私は、データをダウンロードした後AsyncTasks onPostExecute-方法でこれを行う。
任意のアイデアそれを行う方法?
protected void onPostExecute(MainActivity.UrlParams result) {
Toast.makeText(result.contextMain, "Daten wurden erfolgreich aktualisiert!", Toast.LENGTH_LONG).show();
//Aktualisiert aktive Activity damit die neuen Daten angezeigt werden!
ActivityManager am = (ActivityManager) result.contextMain.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName();
Intent intent = Intent.makeMainActivity(componentInfo);
result.contextMain.startActivity(intent);
//myApp.getCurrentActivity().set
}
これはあなたのために行う「EventBus'''というライブラリがあり、素晴らしいです。ライブラリを使用したくない場合は、Tomaszが提案した方法が最善の方法です。 – danypata
ありがとうございますが、これを行う簡単な方法はありますか? – Goetti
danypataが述べたように、あなたは 'EventBus'ライブラリを使うことができます。私はこれが最も簡単で素敵な方法だと思っています。ハッキングやコードを隠すことなく、 –