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

问题描述 投票:0回答:2

我有一个应用程序可以从 Internet 上的远程数据库获取/发送数据。

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

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

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

有人能解释一下怎么做吗?

android service
2个回答
15
投票

使用广播接收器

在您的活动中放置以下代码:

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。


0
投票

我给你的建议是,为更新文本字段或 UI 组件的 UI 部分创建一个 handler

其次,通过接口类从服务到活动的通知。

© www.soinside.com 2019 - 2024. All rights reserved.