我提供了一项服务,以检测我的智能手机是否可以与智能手表通信。
如果我将此行添加到我的代码中:
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;
}
});
感谢。
答案 0 :(得分:0)
我使用了TimerTask,现在它正在使用而不是Thread.sleep。 http://developer.android.com/reference/java/util/TimerTask.html