如何将数据从服务发送到活动?广播接收器?处理程序?意图?我有几个Strings
特别是我想从Service发送到Activity,以便我可以向用户显示一些View。
getApplication().startActivity(new Intent())
?
答案 0 :(得分:0)
既然活动&服务在同一个应用程序中。而不是去服务Binder IPC,尝试实现寄存器callBack机制。请尝试按以下步骤操作 - >创建一个从类Application扩展的静态类,以便在应用程序的任何位置进行快速引用。 - >在Activity中注册一个callBack到这个应用程序类。 - >将服务中的事件发布到应用程序类,然后让Application类将事件传递给所有寄存器callBack。
答案 1 :(得分:0)
正如@ justin-shield所提到的,最好的方法是使用某种形式的IPC。但是,我认为你不需要使用AIDL。您可以看到我给出的另一个answer类似的问题,该问题概述了在Activity
和Service
中注册处理程序和信使的基本步骤。
答案 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发送一些数据,我不需要任何回复服务的通信。