小编Ren*_*eno的帖子

为什么远程服务在主要活动关闭时被销毁?

我写了一个android程序:有一个UI的主要活动,它启动一个服务.该服务及时回调UI活动以更新视图.它工作正常,除了:如果活动关闭(使用BACK)并再次启动,服务也将再次启动(服务播放音频文件,因此有两个重叠的声音).我使用带有BIND_AUTO_CREATE标志的bindService来启动并连接到服务.根据该文档,它应该只在它不存在时创建服务,但显然它在第二次打开时启动另一个实例.我想要的只是当活动关闭,服务继续运行,当活动再次打开时,它可以重新连接到服务.那可能吗?或者我只是误解了服务的用法?

尝试更多:在bindService Intent中使用ICountService(在.aidl中描述)而不是CountService.当活动关闭时,会调用onDestroyed.

如果它有帮助,下面是服务代码创建.

    ServiceConnection conn = new ServiceConnection(){
    @Override
    public void onServiceConnected(ComponentName c, IBinder b) {
        Log.d("TK","Connected");
        //binder = (ICountService.Stub) b;
        service = ICountService.Stub.asInterface(b);
        try {
            service.setCallback(new ICountCallback.Stub(){

                @Override
                public void alert() {
                    Log.d("TK","alert!");
                }

                @Override
                public void updateTime(final int sec) {
                    handler.post(new Runnable(){

                        @Override
                        public void run() {
                                                            indicator.setText(toText(sec));
                        }

                    });
                }               
            });
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onServiceDisconnected(ComponentName c) {
        Log.d("TK","Disconnected");
    }           
};

private void startCountService(){
    Intent i = new Intent(ICountService.class.getName()); …
Run Code Online (Sandbox Code Playgroud)

service android

5
推荐指数
1
解决办法
5643
查看次数

标签 统计

android ×1

service ×1