我在调用的主要活动中创建了变量,"sum"
并在我创建的服务的线程中创建了将变量增加 1 的循环,如下所示:
public void run() {
for(int i=0;i<50000000;i++) {
num++;
}
现在我希望每次变量"num"
增加 1 时,它都会将 的值更新"sum"
为 的值"num"
。
但我真的不知道该怎么做。
我希望它将是实时更新,而不是在线程结束或服务被破坏之后。
我在调用的主要活动中创建了变量,"sum"
并在我创建的服务的线程中创建了将变量增加 1 的循环,如下所示:
public void run() {
for(int i=0;i<50000000;i++) {
num++;
}
现在我希望每次变量"num"
增加 1 时,它都会将 的值更新"sum"
为 的值"num"
。
但我真的不知道该怎么做。
我希望它将是实时更新,而不是在线程结束或服务被破坏之后。
您必须使活动绑定到服务并为其定义接口。但它必须是一项服务吗?也许 AsyncTask 可以是一个更简单的解决方案?
您将通过在服务线程中广播意图并在主线程中为该类型的意图注册接收器来完成此操作。为此,您将需要三个组件:
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