调用context.bindService()方法启动Service的问题

2019-03-26 12:37发布

我在学习安卓,看书。第七章:服务与消息广播
调用context.bindService()方法启动Service
代码如下:
intent.setAction("android.intent.action.start");
                /*intent.setPackage("lq.cn.Service4");*/ //指定启动的是那个应用(lq.cn.twoapp)中的Action(b.aidl.DownLoadService)指向的服务组件  
                Button button1=(Button)findViewById(R.id.button1);
                button1.setOnClickListener(new OnClickListener(){
                        public void onClick(View v){
                                bindService(intent,sConnection,BIND_AUTO_CREATE);
                        }
                });
                Button button2=(Button)findViewById(R.id.button2);
                button2.setOnClickListener(new OnClickListener(){
                        public void onClick(View v){
                                unbindService(sConnection);
                        }
                });

intent.setPackage("lq.cn.Service4");
上面这一句如果不加,会出错,提示Serviceintent must be explicit
加上这句运行也不对。
@Override
        public void onCreate() {
                System.out.println("---onCreate---");
                super.onCreate();
        }


        @Override
        public IBinder onBind(Intent intent) {
                // TODO Auto-generated method stub
                System.out.println("---onBind---");
                return null;
        }


        @Override
        public boolean onUnbind(Intent intent) {
                System.out.println("---onUnbind---");
                return super.onUnbind(intent);
        }
       
        @Override
        public void onDestroy() {
                System.out.println("---onDestroy---");
                super.onDestroy();
        }

这是另一个Activity里的代码,书上的意思启动Service后会在logcat打印出---onCreate---
---onBind---
退出Service会打印出---onUnbind---
---onDestroy---
可是加上上边那一句后,虽然不出错了,但是没有打印出相应的信息。
intent.setPackage("lq.cn.Service4");
这句是我在网上查的,也不知道是什么意思。
好像是什么包名,我感觉可能包名不对。
我不知道该怎么办了。请高手指教,谢谢!
此帖出自Linux与安卓论坛
0条回答

一周热门 更多>