Я сделал приложение с: активностью (MainActivity), которая запускает сервис (SmartphoneListener).Сервис не работает: приложение закрыто и экран смартфона выключен
активность
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);
}
}
Служба используется для обнаружения (на смартфоне), если соединение с SmartWatch теряется.
служба
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) {
//
}
};
...
}
Если мое приложение открыто и экран смартфона выключен, я могу обнаружить, если я потерял связь с SmartWatch (код mIntentReceiver выполняется). Затем, если я закрою приложение и экран смартфона выключен, я не могу определить, потерял ли я соединение с smartwatch (код mIntentReceiver не выполняется). Я не знаю почему.
Как вы «закрываете» приложение: отступаете, нажав кнопку «Домой», вытаскивая его из списка недавних задач? –
Вычистите его из списка недавних задач. – tomss