2017-02-21 67 views
0

我已经看到许多服务的默认行为,它们在被系统或用户杀死时重新启动。ANDROID:当我的服务死亡/坠毁时重新启动android设备

是否有可能如果我的服务被杀害或崩溃android设备重新启动,而不是我的服务本身重新启动。

如果是这样,那么android就提供了一些我们可以用来实现上述的机制。

+0

你们是不是要为学术目的这样做实现这一目标?关闭一个设备不是个好主意 – Dibzmania

+0

是@Dibzmania它是用于学术目的。 –

回答

0

首先,它是真的非常糟糕的模式重新启动设备的服务销毁。

不管怎么说,你可以使用下面的代码

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); 
} 

} 
+0

是的,建议不要在服务销毁时重启设备。 –

+0

另外,如果服务崩溃,那么ondestroy()函数将不会被调用。那么是否还有其他方法可以实现上述目标? –

+0

@SachinDagur检查了这一点,可以帮助你解决你的第二个问题http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android –

相关问题