Android中的活动服务

时间:2011-07-08 06:22:39

标签: android service android-activity android-intent broadcastreceiver

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

getApplication().startActivity(new Intent())

3 个答案:

答案 0 :(得分:0)

既然活动&服务在同一个应用程序中。而不是去服务Binder IPC,尝试实现寄存器callBack机制。请尝试按以下步骤操作   - >创建一个从类Application扩展的静态类,以便在应用程序的任何位置进行快速引用。   - >在Activity中注册一个callBack到这个应用程序类。   - >将服务中的事件发布到应用程序类,然后让Application类将事件传递给所有寄存器callBack。

答案 1 :(得分:0)

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

答案 2 :(得分: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发送一些数据,我不需要任何回复服务的通信。