是否可以通过Intent将对象发送到Android服务而不实际绑定到服务?或者也许是服务访问对象的另一种方式......
Bin*_*ran 25
您可以像这样调用startService(Intent):
MyObject obj = new MyObject();
Intent intent = new Intent(this, MyService.class);
intent.putExtra("object", obj);
startService(intent);
Run Code Online (Sandbox Code Playgroud)
您要发送的对象必须实现Parcelable(您可以参考此Percelable指南)
class MyObject extends Object implements Parcelable {
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
}
}
Run Code Online (Sandbox Code Playgroud)
使用Service,在onStart()或onStartCommand()方法中,对于api级别5和更高版本,您可以获取对象:
MyObject obj = intent.getParcelableExtra("object");
Run Code Online (Sandbox Code Playgroud)
就这样 :)
如果您不想实现Parcelable并且您的对象是可序列化的
用这个
在发件人Activiy
Intent intent = new Intent(activity, MyActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("my object", myObject);
intent.putExtras(bundle);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在接收器中:
myObject = (MyObject) getIntent().getExtras().getSerializable("my object");
Run Code Online (Sandbox Code Playgroud)
适合我的工作尝试.但该对象必须是可序列化的:)
| 归档时间: |
|
| 查看次数: |
24316 次 |
| 最近记录: |