一个是尽量提高APP权限,无非就是保持APP始终界面在前台
二是使用守护进程方法,被清理了立刻自己启动,
三是前台跟后台进程分开,被重启了恢复原始环境。
// 申请设备电源锁,在服务start的时候。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
private WakeLock mWakeLock; private void acquireWakeLock() { if (null == mWakeLock) { PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "LoginService" ); if (null != mWakeLock) { mWakeLock.acquire(); } } } // 释放设备电源锁,在服务Destory的时候 private void releaseWakeLock() { if (null != mWakeLock) { mWakeLock.release(); mWakeLock = null; } } |
这个方法是防止手机休眠。你的服务就会一直运行下去,不会被系统kill掉。亲测可行。
还有在onStartCommand里面最后return super.onStartCommand(intent, START_STICKY, startId);
QQ在通知栏不是设了一个不同于一般通知的通知
代码如下:
1
2
3
4
|
Notification notification = new Notification(R.drawable.qqbatch_logo, getString(R.string.app_name),System.currentTimeMillis()); PendingIntent pendingintent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0); notification.setLatestEventInfo(this, "xxxx" , "xxxxxxxxx" , pendingintent); startForeground(0x111, notification); |