我的问题: 在MainActivity中,我开始通过XML Parser从Internet下载一些数据。此数据显示在我的应用程序的每个屏幕上。它就像一个数据库。
在下载和保存数据时,应用程序的用户可以浏览漏洞应用程序。如果下载和保存数据已完成,我想检测并重新加载当前的前台活动。我需要这样做,以显示新数据。
我可以使用ActivityManager检测当前的Activity,并可以使用方法“startActivity(Intent.makeMainActivity(componentName)”使用ComponentName启动它。但是当我使用ActionBar-BackButton导航回来时,旧的活动也在那里。 我在下载数据后在AsyncTasks onPostExecute-Method中执行此操作。
任何想法怎么做?
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
}
答案 0 :(得分:1)
BroadcastReceiver
的{{1}}中注册一些MainActivity
,并在onStart()
中取消注册。在此接收器中刷新您的视图