自分の場所が変更されたときに通知します。 「FusedLocationApi.requestLocationUpdates」でユーザーの現在地を監視しています。Android、アプリがスワイプ/スキップされたときにサービスが停止する
アプリが存続する限り、すべて機能します。
しかし、私がアプリをスワイプ/キルすると、私はもはや通知を受け取りません。アプリを殺す/スワイプしても通知を受け続けるにはどうすればよいですか?
@Override
public void onHandleIntent(Intent intent){
googleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
googleApiClient.connect();
locationRequest = new LocationRequest();
locationRequest.setInterval(2000);
locationRequest.setFastestInterval(1000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
@Override
public void onConnected(Bundle bundle) {
try{
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
} catch (SecurityException ex){ex.printStackTrace();}
}
@Override
public void onLocationChanged(Location location) {
this.location = location;
handleLocationUpdate();
}
private void handleLocationUpdate(){
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(BackGroundService.this);
mBuilder.setSmallIcon(R.mipmap.ic_launcher);
mBuilder.setContentTitle(String.format(Locale.getDefault(),
"Lat:%.2f Long:%.2f", location.getLatitude(), location.getLongitude()));
mBuilder.setContentText("Hi, This is Android Notification Detail!");
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
//startForeground(1, mBuilder.build());
}
ありがとうございます。 **オーバーライドされたonStart' **メソッドを追加することでそれを動作させました。しかし、私は実現しました。** onStart **と** onHandleIntent **は一緒に演奏されません。だから私は** IntentService **基底クラスの代わりに** 'Service' **基底クラスから拡張しなければなりませんでした。 – QnARails