繁体   English   中英

Android:从服务生成的线程可以直接调用服务的方法之一吗?

[英]Android: can a Thread spawned from a Service invoke one of the Service's methods directly?

我有一个生成线程的服务,该服务与云服务进行了一些握手。 线程完成后,它将通过从服务实例中显式取消引用方法来通知服务。

问题:在Android模型中,可以接受吗? 如果不是,关于派生线程通知父服务的最佳实践是什么?

注意:我正在使用Lollipop(Android 5.0,API级别21)。

这是一个大概的想法(从在线Android书籍之一的示例中借来的):

public class MyService extends Service {
    private static final String TOKEN = "msg-token";

    // XXX Implement Service methods here.

    private void notifyService(Object someObject) {
        // XXX Process result from cloud service interaction.
    }

    private class MyCloudClient implements Runnable {
        @Override
        public void run() {
            // XXX Interact with cloud service here.

            Bundle msgInfo = new Bundle();
            msgInfo.putSerializable(TOKEN, msgInfo);

            Message msg = Message.obtain();
            msg.setData(msgInfo);
            MyService.this.msgHandler.sendMessage(msg);        
        }
    }

    private Handler msgHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            Bundle msgInfo = msg.getData();
            Object someObject = msgInfo.getSerializable(TOKEN);
            MyService.this.notifyService(someObject);
        }
    };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM