gpt4 book ai didi

java - 如何从正在运行的服务获取数据

转载 作者:行者123 更新时间:2023-11-29 08:17:24 27 4
gpt4 key购买 nike

我刚刚开始在 Android 中使用服务,并且创建了一个简单的服务,每 20 秒轮询一次服务器。

现在我如何从我的主要 Activity (当它处于 Activity 状态时)获取这些数据?

或者,服务可以将其发送回我的主要 Activity (但前提是其处于 Activity 状态)。我不想唤醒我的 Activity。

我已阅读SDK examples “绑定(bind)”,但我找不到如何实际从服务中获取某些内容的示例。只是如何启动和停止绑定(bind)。

来自示例。如果我的 Activity 中有“mBoundService”对象,我如何从名为例如的服务方法获取数据。 “pollingData()”?

最佳答案

我的建议是使用 sendBroadcast() 从服务中发送广播,然后使用 BroadcastReceiver 作为主要 Activity 中的内部类。根据您的服务,您可以使用 putExtras()getExtras()

将数据附加到 Intent

希望这有帮助!

一个实际的例子:

public class x extends Service {

//Code for your service goes here

public talk() {
Intent i = new Intent();
i.putExtras("Extra data name", "Super secret data");
i.setAction("FILTER");
sendBroadcast(i);
}
}

然后在服务正在与之对话的类中:

public class y extends Activity {

//Code for your activity goes here

BroadcastReceiver br = new BroadcastReceiver() {
public void onReceive(Intent i) {
String str = (String) i.getExtras().get("Extra data name").toString();
}

OnResume() {
super.OnResume();
IntentFilter filt = new IntentFilter("FILTER");
this.registerReceiver(br, filt);

//Do your other stuff
}

OnPause() {
super.OnPause();
unregisterReceiver(br);
}

希望这个示例符合您正在寻找的内容,如果您需要更多详细信息,请告诉我。

关于java - 如何从正在运行的服务获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3539300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com