繁体   English   中英

如何将数据从服务/线程类传递到主活动?

[英]How can I pass data from service/thread class to the main activity?

我在名为"sum"的主要活动中创建了变量,并在服务的线程中创建了将变量加1的循环,如下所示:

public void run() {
    for(int i=0;i<50000000;i++) {
        num++;
    }

现在,我希望每次将变量"num"增加1时,它将"sum"的值更新为"num"的值。

但是我真的不知道该怎么做。

我希望这将是实时更新,而不是在线程结束或服务将被销毁之后。

您必须使活动绑定到服务并为其定义接口。 但这一定是一项服务吗? 也许AsyncTask可以是更简单的解决方案?

您将通过在服务线程中广播意图,并在主线程中注册该意图类型的接收者来实现这一点。 为此,您将需要三个组件:

  • 目的,如果需要从服务发送到主线程的其他数据,则添加其他功能
  • 广播接收器,它是扩展BroadcastReceiver的类,并在BroadcastReceiver意图时执行其OnReceive方法。
  • 一个意图过滤器,基本上是将一个意图链接到一个接收者的东西。 您使用过滤器类型注册接收器。

我可以重新输入代码,但是在此链接上有关于如何使用该代码的说明。 您对最后三张幻灯片感兴趣:

http://www.slideshare.net/CodeAndroid/android-intent-intent-filter-broadcast-receivers

另外,请查看以下内容: http : //developer.android.com/reference/android/content/BroadcastReceiver.html http://developer.android.com/reference/android/content/IntentFilter.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM