我正在使用AlarmManager定期启动服务以从服务器检索数据:
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, Service.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 1, intent, 0);
alarmManager.setRepeating(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES,
pendingIntent);
所以它启动,一切顺利......
唯一的问题是我不知道如何从它更新主UI ...我见过的所有例子都不使用AlarmManager ...所以它们不符合我的需要。
你能帮我吗?
谢谢!
答案 0 :(得分:0)
您的服务无法访问UI线程。但是可以使用您在代码中引用的Context对象来调用
runOnUiThread(Runnable Action);
如果你熟悉Runnable和其他多线程能力,那么你就可以获得我的目标。
否则,
让您的服务触发Intent广播,并创建一个扩展BroadcastReceiver的嵌套类
private class updateUIReceiver extends BroadcastReceiver{
当前包含UI线程的Activity内部。然后使用
获得创意Intent.putExtra();
告诉您的活动如何更新UI。如字符串是整数。常数运作良好。