0

如何将服务中的数据发送到活动?广播接收机?处理程序?意图?我有几个Strings,特别是我想从服务发送到一个活动,以便我可以显示一些视图给用户。Android中的活动服务

getApplication().startActivity(new Intent())

+0

我做了一些更多的阅读,我正在考虑使用处理程序。如果我在接收类中定义自定义处理程序(以获取数据),那么我只能从Service类发送消息,对吧? – user817129

回答

0

由于活动&服务处于相同的应用程序。而不是去服务活页夹IPC,尝试实现注册回调机制。尝试按照以下步骤操作 - >创建一个静态类,它从类Application扩展到在应用程序的任何位置快速引用。 - >将活动中的callBack注册到此应用程序类。 - >将事件从您的服务发布到应用程序类,并让Application类将事件传递给所有注册回调。

0

As @ justin-shield提到最好的方法是使用某种形式的IPC。但是,我认为你不需要使用AIDL。你可以看到另一个answer我给了一个类似的问题,概述了在你的ActivityService中注册处理程序和信使的基本步骤。

0

我认为你所有的答案比我需要的方式更复杂。我想我已经想出了一个相当简单的解决方案(伪代码):

服务:

Intent i = new Intent(this,Activity.class);

i.putExtra(name,value);

startActivity(i);

Activty:

private Intent intent;

private String s1;

onCreate(Bundle savedInstanceState) 
{ 
    super(savedInstanceState);

intent = this.getIntent(); //Gets the intent that started this Activity. s1=intent.getExtras().getString(name);

}

我会使用相同的代码在调用onStart()?那么onResume()呢? onRestart()?最后,我只想发送一些数据通过一些View对象发布给Activity,我不需要任何通信返回到服务。