0
当手机关机并重新启动时。我想在我的共享首选项中存储一些数据。我想在我的serivce onDestroy上做到这一点。但是,当我重新启动手机或将其关闭并再次打开时,它似乎并未储存。这是我如何做到的。再次,这是一项服务。在设备重启时在服务onDestroy上存储变量
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
preferences = getSharedPreferences(pref_data, Context.MODE_PRIVATE);
driverPassword = preferences.getString("driverPassword","");
carrierId = preferences.getString("carrierId","");
cctid = preferences.getString("CCTID","");
shipment = preferences.getString("shipment","");
try
{
JSONObject shipmentObject = new JSONObject(shipment);
shipmentID = shipmentObject.getString("ShipmentId");
}
catch(Exception e)
{
}
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyWakeLock");
handler.removeCallbacks(sendWakeLock);
handler.postDelayed(sendWakeLock, 1000); // 1 second
Log.w("onStart", "onStart");
return Service.START_NOT_STICKY;
}
@Override
public void onDestroy(){
super.onDestroy();
Log.w("onDestroy", "onDestroy");
handler.removeCallbacks(sendWakeLock);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("isDriverLogin", "True");
editor.putString("driverPassword", driverPassword);
editor.putString("carrierId", carrierId);
editor.putString("CCTID", cctid);
editor.putString("shipment", shipment);
editor.putString("isAccepted", "");
editor.putString("newshipment", "");
editor.putString("isRemoved", "True");
editor.commit();
}
注意:我对我的activity的onDestroy方法有其他重要的活动,我不想使用它。如果手机重新启动,我想利用发生在我的服务中的事件。我还设置了Service.START_NOT_STICKY;希望当手机重新启动或关闭时,它会执行我的onDestroy。当我重新启动手机时重新启动手机或我的服务停止时,如何在我的服务中捕捉事件的任何想法?
我真的不得到我怎么可能对我的情况实施这一点。一旦我的服务被销毁,我想存储值。如果我重新启动手机,如何检查我的服务是否正在运行? – ljpv14