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,以查看是否还有其他异常被抛出?有关最佳服务实践,请参阅