0
我的应用程序包含一个活动,由于服务器显示计划,UI必须更新。在这种情况下更新UI的最佳方法是什么?Shedule UI更新
到目前为止,我已经提出了AlarmManager和Service,但我不确定这是一个好的做法。还有其他建议吗?我在Handler中看到了一些相关的方法,但我没有关于正常运行时间参数的使用方法。
报警
Intent intent = new Intent(getActivity(), OnAirUpdateAlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(getActivity(),
0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
AlarmManager am = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
接收器(运行活动检查是否是一个需要更新)
@Override
public void onReceive(Context context, Intent intent) {
ActivityManager am = (ActivityManager) context
.getSystemService(Activity.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
String name = taskInfo.get(0).topActivity.getShortClassName();
if (name.equals(".activity.handset.HandsetMainActivity")) {
Intent notificationIntent = new Intent(context,
HandsetMainActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
notificationIntent.putExtra(
context.getResources().getString(
R.string.extras_main_activity_on_new_intent),
HandsetMainActivity.UPDATE_PLAYER_FRAGMENT_UI);
context.startActivity(notificationIntent);
}
}
而如果是 - 请求片段UI更新。再次不确定这是否是最佳解决方案。
感谢您的建议。
好的,谢谢 - 会去看看它。我会保持打开一段时间的问题。 – midnight