我有一个应用程序可以从 Internet 上的远程数据库获取/发送数据。
我需要让我的应用程序在后台模式下工作,然后我想我必须将所有发送/获取远程数据放在服务中......
但是....该服务如何更改我的活动的变量值和 UI 文本字段?
我找不到任何关于这个的信息,我找到的所有教程都是简单的服务,不会做那样的事情
有人能解释一下怎么做吗?
在您的活动中放置以下代码:
private BroadcastReceiver onBroadcast = new BroadcastReceiver() {
@Override
public void onReceive(Context ctxt, Intent i) {
// do stuff to the UI
}
};
在你的 onResume() 中注册接收器:
registerReceiver(onBroadcast, new IntentFilter("mymessage"));
一定要在onPause()注销:
unregisterReceiver(onBroadcast);
在您的服务中,您可以将消息发布到应用程序,您的活动将听到该消息:
getApplicationContext().sendBroadcast(new Intent("mymessage"));
如果需要,您可以将数据添加到 Intent 的包中以传递给您的 Activity。
我给你的建议是,为更新文本字段或 UI 组件的 UI 部分创建一个 handler。
其次,通过接口类从服务到活动的通知。