这是我关于 SO 的第一个问题,我希望这个问题不会很糟糕。
我有一项服务,它在用户启动应用程序时开始工作,直到用户通过任务杀手杀死它或关闭他的设备。
该服务有一个后台线程,它对数据进行一些处理。我需要绑定活动(来自活动,而不是通过服务),有时(每 30 秒 1-2 次)将数据发送到绑定的活动。
我的服务结构:
public class myserv extends Service {
public static boolean started=false;
public class workwithdata extends Thread {
@Override
public synchronized void start() {
super.start();
//.. Not important.
}
@Override
public void run() {
if (running) return;
while (true) {
if(condition) mythread.sleep(30000);
else {
Object data = recieveMyData();
if (!data.isEmpty()) {
//.. Some work with recieved data, not important.
sendDataToBindedActivities(data); //This is what I need.
}
mythread.sleep(10000);
}
}
}
}
@Override
public void onCreate() {
super.onCreate();
this.started=true;
mythread = new workwithdata();
mythread.start();
}
}
好吧,我发现了一个问题,但我的问题有一点不同:我不需要向服务发送任何数据,我只需向所有绑定的活动发送一些数据(哪个服务根本不知道)。
我正在寻找的结构:
public class myact extends Activity {
@Override
public void onCreate(Bundle bun) {
super.onCreate(bun);
if(!myserv.started) {
Intent service = new Intent(getApplicationContext(), myserv.class);
getApplicationContext().startService(service);
}
bindToService(this);
}
@Override
public void onRecievedData(Object data) {
//work with recieved data from service "myserv".
}
}
我也试图在 android 文档中找到一些解决方案,但我没有找到我需要的东西。
所以,主要问题是:是否可以处理从服务到活动的通信?. 如果不是:我应该为此目的使用什么?如果是,只是,对不起,我可以要求一些代码或类名,因为我试图找到并且没有......
谢谢你。