Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数据从服务/线程类传递到主活动?_Java_Android_Multithreading_Service_Android Intent - Fatal编程技术网

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

Java 如何将数据从服务/线程类传递到主活动?,java,android,multithreading,service,android-intent,Java,Android,Multithreading,Service,Android Intent,我在名为“sum”的主活动中创建了变量,并在我创建的服务线程中创建了循环,将变量增加1,如下所示: public void run() { for(int i=0;i<50000000;i++) { num++; } public void run(){ 对于(inti=0;i,您必须使活动绑定到服务并为其定义接口。 但是它必须是服务吗?也许异步任务可以是一个更简单的解决方案?您可以通过在服务线程中广播意图,并在主线程中注册该意图类型的接收者来实现这一点。

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

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

对于(inti=0;i,您必须使活动绑定到服务并为其定义接口。
但是它必须是服务吗?也许异步任务可以是一个更简单的解决方案?

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

  • 如果您需要从服务发送到主线程的附加数据,则添加额外的内容
  • Broadcast receiver,一个类,它扩展了
    BroadcastReceiver
    ,并在广播意图时执行其
    OnReceive
    方法
  • 意图过滤器,基本上是将意图链接到接收者的东西。使用过滤器类型注册接收者
我可以重新键入代码,但在该链接上有关于如何使用该代码的说明。您对最后三张幻灯片感兴趣:

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