我想将字符串从片段传递给服务。我试过setvalue和bind,但它适用于活动而不是startservice对吗? 什么是“ServiceConnection”,通过使用ServiceConnection可以传递字符串? 这是我开始服务的片段代码。
**Solved **
我已将代码更改为此内容并且完美无缺
Intent intent = new Intent(getActivity(), myPlayService.class);
Bundle b = new Bundle();
b.putString("link", "http://94.23.154/bbc");
intent.putExtras(b);
getActivity().startService(intent);
在服务中使用
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
if(intent != null){
Bundle bundle = intent.getExtras();
link = bundle.getString("link");
}
答案 0 :(得分:5)
您可以通过Intent并使用putExtra()
方法将字符串从Fragment传递到Service:
Intent intent = new Intent(getActivity(), myPlayService.class));
intent.putExtra("string param 1", "String for the Service");
getActivity().startService(intent);
在服务中,您将检索onStartCommand()
中的字符串:
public int onStartCommand(Intent intent, int flags, int startId) {
String stringFromFragment = intent.getStringExtra("string param 1");
// TODO do something with the string
startPlayer();
return START_STICKY;
}
答案 1 :(得分:-1)
在片段的OnAttach
中编写代码
@Override
public void onAttach(Context context) {
super.onAttach(context);
Intent i = new Intent(getActivity(), ServiceName.class);
i.putExtra("key",value);
getActivity().startService(i);
}