android里 activity怎么向service传递参数?

2024-11-28 12:11:23
推荐回答(1个)
回答1:

android中activity中向service传递参数,有如下方法:\x0d\x0a\x0d\x0a1.在Activity里注册一个BroadcastReceiver,Service完成某个任务就可以发一个广播,接收器收到广播后通知activity做相应的操作。\x0d\x0a2.使用bindService来关联Service和Application,应用.apk里的所有组件一般情况都运行在同一个进程中,所以不需要用到IPC,bindService成功后,Service的Client可以得到Service返回的一个iBinder引用,具体的参见Service的文档及onBind的例子,这样Service的引用就可以通过返回的iBinder对象得到,如\x0d\x0apublic class LocalService extends Service {\x0d\x0a // This is the object that receives interactions from clients. See\x0d\x0a // RemoteService for a more complete example.\x0d\x0a private final IBinder mBinder = new LocalBinder();\x0d\x0a\x0d\x0a public class LocalBinder extends Binder {\x0d\x0a LocalService getService() {\x0d\x0a return LocalService.this;\x0d\x0a }\x0d\x0a }\x0d\x0a\x0d\x0a @Override\x0d\x0a public IBinder onBind(Intent intent) {\x0d\x0a return mBinder;\x0d\x0a }\x0d\x0a}\x0d\x0a\x0d\x0a之后Client通过这个iBinder对象得到Service对象引用之后,可以直接和Service通讯,比如读取Service中的值或是调用Service的方法。