我已经看到许多服务的默认行为,它们在被系统或用户杀死时重新启动。ANDROID:当我的服务死亡/坠毁时重新启动android设备
是否有可能如果我的服务被杀害或崩溃android设备重新启动,而不是我的服务本身重新启动。
如果是这样,那么android就提供了一些我们可以用来实现上述的机制。
我已经看到许多服务的默认行为,它们在被系统或用户杀死时重新启动。ANDROID:当我的服务死亡/坠毁时重新启动android设备
是否有可能如果我的服务被杀害或崩溃android设备重新启动,而不是我的服务本身重新启动。
如果是这样,那么android就提供了一些我们可以用来实现上述的机制。
首先,它是真的非常糟糕的模式重新启动设备的服务销毁。
不管怎么说,你可以使用下面的代码
public class demoService extends Service
{
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand");
}
@Override
public void onDestroy() {
super.onDestroy();
// this won't restart your phone instead it will ask for action
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);
}
}
是的,建议不要在服务销毁时重启设备。 –
另外,如果服务崩溃,那么ondestroy()函数将不会被调用。那么是否还有其他方法可以实现上述目标? –
@SachinDagur检查了这一点,可以帮助你解决你的第二个问题http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –
你们是不是要为学术目的这样做实现这一目标?关闭一个设备不是个好主意 – Dibzmania
是@Dibzmania它是用于学术目的。 –