내 문제 : MainActivity에서 XML Parser를 통해 인터넷에서 일부 데이터를 다운로드하기 시작합니다. 이 데이터는 내 앱의 모든 화면에 표시됩니다. 그것은 데이터베이스와 같습니다.현재 포어 그라운드 활동을 감지하고 다시로드하십시오.
데이터를 다운로드하고 저장하는 동안 앱 사용자는 구멍 앱을 탐색 할 수 있습니다. 데이터 다운로드 및 저장이 완료되면 현재 전경 작업을 감지하고 다시로드하려고합니다. 새 데이터를 표시하려면이 작업을 수행해야합니다.
ActivityManager를 사용하여 현재 Activity를 감지 할 수 있으며 "startActivity (Intent.makeMainActivity (componentName)"메서드를 사용하여 ComponentName을 사용하여 시작할 수 있습니다.하지만 이전 활동은 ActionBar- BACK 버튼. 내가 데이터를 다운로드 한 후 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' 라이브러리를 사용할 수 있습니다. 나는 이것이 가장 단순하고 좋은 방법이라고 생각한다. 해킹과 코드가 흐트러지지 않는다. –