我的服务如何更改我的活动的变量和UI文本字段的值?

Nul*_*ion 0 service android

我有一个应用程序从互联网上的远程数据库获取/发送数据.

我需要让我的应用程序在后台模式下工作,然后我说我必须将所有发送/获取远程数据放在服务中.....

但是......这项服务如何改变我的活动的变量和UI文本字段的值?

我找不到任何关于此的信息,我发现的所有教程都是简单的服务,不会做那样的事情

有人能解释我该怎么办吗?

And*_*rew 14

使用BroadcastReceiver

在您的Activity中放置以下代码:

private BroadcastReceiver onBroadcast = new BroadcastReceiver() {
    @Override
    public void onReceive(Context ctxt, Intent i) {
        // do stuff to the UI
    }
};
Run Code Online (Sandbox Code Playgroud)

在onResume()中注册接收器:

registerReceiver(onBroadcast, new IntentFilter("mymessage"));
Run Code Online (Sandbox Code Playgroud)

一定要在onPause()中取消注册:

unregisterReceiver(onBroadcast);
Run Code Online (Sandbox Code Playgroud)

在您的服务中,您可以将消息发布到应用程序,您的活动将听到:

getApplicationContext().sendBroadcast(new Intent("mymessage"));
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以将数据添加到Intent的包中以传递给您的Activity.