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

dro*_*ren 1 java service android

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

现在如何从主要活动中获取这些数据(活动时)?

或者,该服务可以将其发送回我的主要活动(但仅当其活动时)。我不想唤醒我的活动。

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

从示例。如果我的活动中包含“ mBoundService”对象,该如何从称为的服务方法中获取数据。“ pollingData()”?

And*_*her 5

我的建议是使用sendBroadcast()服务发送广播,然后BroadcastReceiver在主要活动中使用a 作为内部类。根据您的服务,您可以使用putExtras()和将数据附加到意图getExtras()

希望这可以帮助!

一个实际的例子:

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);
   }
}
Run Code Online (Sandbox Code Playgroud)

然后,在该班级中,服务正在与之交谈:

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);
   }
Run Code Online (Sandbox Code Playgroud)

希望此示例与您要查找的内容有关,如果您需要更多详细信息,请告诉我。