Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Toast停止-getConnectedNodes_Java_Android - Fatal编程技术网

Java Toast停止-getConnectedNodes

Java Toast停止-getConnectedNodes,java,android,Java,Android,我做了一项服务来检测我的智能手机是否可以与我的智能手表通信 如果我将此行添加到代码中: NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mApiClient).await(); 当我关闭应用程序时,它将停止接收Toast消息。我不知道为什么 我的服务代码: @Override public int onStartCommand(Intent intent, int flags, int sta

我做了一项服务来检测我的智能手机是否可以与我的智能手表通信

如果我将此行添加到代码中:

NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mApiClient).await();
当我关闭应用程序时,它将停止接收Toast消息。我不知道为什么

我的服务代码:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    initGoogleApiClient();
    new Thread( new Runnable() {
        @Override
        public void run() {
            while(true) {
                    NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mApiClient).await();
                    Message messageWithoutSignal= new Message();
                    messageWithoutSignal.arg1 = 1;
                    messages.sendMessage(messageWithoutSignal);
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();
    return START_STICKY;
}

 Handler messages= new Handler(new Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
        if(msg.arg1==1)
            Toast.makeText(getApplicationContext(), "Doesn't have signal!", Toast.LENGTH_SHORT).show();
        return false;
    }
});

谢谢。

我使用了TimerTask,现在它可以代替Thread.sleep工作了

在您的服务中传递上下文,并在toast中传递该上下文。如何在我的服务中传递上下文?
service
只需通过
getApplicationContext()即可访问上下文
afaik。我仍然不明白我的代码出了什么问题……您是否尝试捕获常规异常而不是InterruptedException,以查看是否还有其他异常被抛出?有关最佳服务实践,请参阅