我通过以下内容创建了应用程序:启动服务(SmartphoneListener)的活动(MainActivity)。服务未运行:应用程序关闭,智能手机屏幕关闭
活动
public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this,SmartphoneListener.class);
startService(intent);
}
}
该服务被用于检测(在智能手机上)如果与智能手表的连接丢失。
服务
public class SmartphoneListener extends WearableListenerService {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyWakelockTag"); //Service running even if the screen is off.
wakeLock.acquire();
return START_STICKY;
}
@Override
public void onPeerDisconnected(Node node){
Toast.makeText(getApplicationContext(),"Communication with smartwatch lost",Toast.LENGTH_SHORT).show();
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
registerReceiver(mIntentReceiver, filter);
}
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver(){
public void onReceive(Context context, Intent intent) {
//
}
};
...
}
如果我的应用程序是开放的,智能手机的屏幕是关闭的,我可以发现,如果我失去了我的智能手表连接(执行mIntentReceiver代码)。 然后如果我关闭我的应用程序,智能手机屏幕关闭,我无法检测到我是否失去了与smartwatch的连接(mIntentReceiver代码未执行)。 我不知道为什么。
你如何“关闭”你的应用程序:退出,按主屏幕按钮,从最近的任务列表中刷过它? –
从最近的任务列表中滑动。 – tomss