我在android中创建一个应用程序。
如何在服务中启动服务和访问时将ArrayList的对象传递给服务???
提前致谢...
答案 0 :(得分:2)
你必须在service.OnStart方法中覆盖onStart方法,你可以获得Activity的意图。 如果要将ArrayList从activity传递给service,可以将arraylist转换为array。
在你的活动中
Intent intent=new Intent(ServicesActivity.this,FileManagerRequest.class);
Bundle b=new Bundle()
b.putStringArray("Array", your_array)
intent.putExtras(b);
startService(intent);
在你的服务中
public void onStart(Intent intent, int startid){
super.onStart(intent, startid);
Bundle b=intent.getExtras();
String[] Array = b.getStringArray("Array");
}
答案 1 :(得分:0)
两个选项:
Bundle
传递一些数据。答案 2 :(得分:0)
/ ** *** /
startbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
Bundle b=new Bundle();
b.putString("id", id);
Intent in=new Intent(create.this,myservice.class);
in.putExtras(b);
//Toast.makeText(getBaseContext(), "Service Started", Toast.LENGTH_LONG).show();
startService(in);
}
答案 3 :(得分:0)
/ ** * *** /
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
super.onStart(intent, startId);
id=intent.getExtras();
value=id.getString("id");
Toast.makeText(this, "Service Started "+value, Toast.LENGTH_LONG).show();
答案 4 :(得分:0)
最后我得到了答案,它为我工作,试试吧。
1)从Activity发送对象喜欢ArrayList<String> names
发送到这种方式的示例。 names.add("kdblue");
Intent startIntent = new Intent(CuurentActivity.this, UploadService.class);
startIntent.putStringArrayListExtra("data",names);
startService(startIntent);
2)现在从服务
接收此ArrayList<String>
个对象
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
ArrayList<String> transferData = intent.getStringArrayListExtra("data");
return START_STICKY;
}
注意:transferData
对象包含所有ArrayList<String> names
属性。