如何将服务中的数据发送到活动?广播接收机?处理程序?意图?我有几个Strings
,特别是我想从服务发送到一个活动,以便我可以显示一些视图给用户。Android中的活动服务
getApplication().startActivity(new Intent())
?
如何将服务中的数据发送到活动?广播接收机?处理程序?意图?我有几个Strings
,特别是我想从服务发送到一个活动,以便我可以显示一些视图给用户。Android中的活动服务
getApplication().startActivity(new Intent())
?
由于活动&服务处于相同的应用程序。而不是去服务活页夹IPC,尝试实现注册回调机制。尝试按照以下步骤操作 - >创建一个静态类,它从类Application扩展到在应用程序的任何位置快速引用。 - >将活动中的callBack注册到此应用程序类。 - >将事件从您的服务发布到应用程序类,并让Application类将事件传递给所有注册回调。
As @ justin-shield提到最好的方法是使用某种形式的IPC。但是,我认为你不需要使用AIDL。你可以看到另一个answer我给了一个类似的问题,概述了在你的Activity
和Service
中注册处理程序和信使的基本步骤。
我认为你所有的答案比我需要的方式更复杂。我想我已经想出了一个相当简单的解决方案(伪代码):
服务:
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,我不需要任何通信返回到服务。
我做了一些更多的阅读,我正在考虑使用处理程序。如果我在接收类中定义自定义处理程序(以获取数据),那么我只能从Service类发送消息,对吧? – user817129