2014-05-17 37 views
1

我的应用程序具有绑定到活动的远程,前台辅助服务。当我清除最近的任务(通过刷卡)服务销毁。我怎样才能防止杀人的服务。清除最近的任务时防止终止服务

<service android:enabled="true" 
       android:exported="false" 
       android:stopWithTask="false" 
       android:process=":xplay" 
       android:name="com.perm.x.Services.PlayingService"/> 

下面是我(在的onResume)结合

Intent serviceIntent = new Intent(this,PlayingService.class); 
     startService(serviceIntent); 
     bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE); 

这里是我我怎么解除绑定服务(在的onPause)

unbindService(serviceConnection); 
+0

应用程序后您的设备是否有哪个版本的Android?该服务是否最终会被系统重新启动? – Karakuri

+0

4.1果冻豆。是的,服务约4秒后重新启动通知 – dooplaye

+0

也我测试其他应用程序。除Poweramp玩家外几乎所有人都有相同的行为。他只是忽略了杀人 – dooplaye

回答

2

为防止服务杀害发现一个黑客(其实我的确在这里读过)

@Override 
    public void onTaskRemoved(Intent rootIntent) { 
      Intent intent = new Intent(this, DummyActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
    } 

DummyActivity:

public class DummyActivity extends Activity { 
    @Override 
    public void onCreate(Bundle icicle){ 
     super.onCreate(icicle); 
     finish(); 
    } 
} 

就是这样。但是有这个技巧的副作用 - 与最近用过的面板会立即隐藏,你刷卡的

+0

即时通讯开始我的活动从我报警onRecieve了,我想我的活动应该出现在最近名单,但只要有我== 2的状态,因为我== 2那么这活动应该完成并从最近的列表中删除,如果我使用xml属性,那么它是从最近的列表中完全隐藏 – Erum