我在我的应用程序中使用 Service
,它需要一直运行到我的应用程序卸载,但问题是它会被操作系统杀掉。
我们如何防止它被操作系统杀掉?或者,如果它被杀掉了,我们能否通过编程重启该服务?
我在我的应用程序中使用 Service
,它需要一直运行到我的应用程序卸载,但问题是它会被操作系统杀掉。
我们如何防止它被操作系统杀掉?或者,如果它被杀掉了,我们能否通过编程重启该服务?
final Messenger mMessenger = new Messenger(new IncomingHandler());
class IncomingHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
default:
super.handleMessage(msg);
}
}
}
@Override
public void onCreate() {
super.onCreate();
makeServiceForeground();
}
@Override
public IBinder onBind(Intent arg0) {
return mMessenger.getBinder();
}
private void makeServiceForeground() {
IActivityManager am = ActivityManagerNative.getDefault();
try {
am.setProcessForeground(onBind(null), android.os.Process.myPid(), true);
} catch (RemoteException e) {
Log.e("", "cant set to foreground" + e.toString());
}
}
还需要在 manifest.xml 文件中添加。
<uses-permission android:name="android.permission.SET_PROCESS_LIMIT"/>