android app关闭后想让 Android alarm 继续运行?

2015-3-19 23:24:37     人阅读    

 

我现在在app中使用 adnroid  AlarmManager,代码中使用了定时调度,当我正常运行app的时候 , alarm 正常调度,当我点击 home按钮的时候,alarm 也能正常的运行,但是当我打开任务管理器,强制关闭app的时候,alarm 就停止了,这个正常吗?AlarmManager 是依赖app ?
          我现在想达到的功能是 ,当我的app被强制关闭的时候 Alarm依然可以正常的运行..

下面的代码在  onCreate() 中调用.

private void scheduleAlarm() {
 
  if (alarmScheduled == true) { return; } // we only need to schedule once.



  int alarmInterval = Def.pref(getApplicationContext()).getInt("alarmInterval", 30);



  final Intent intent = new Intent(getApplicationContext(), CollectorAlarmReceiver.class);
 
  final PendingIntent pending = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);



  AlarmManager alarmMgr = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);



  alarmMgr.cancel(pending); // cancel others.



  alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+1000,
 
    alarmInterval*1000, pending);



  Def.log(TAG,"scheduleAlarm(): alarm scheduled, interval: "+alarmInterval+" seconds");
 
  alarmScheduled = true;
 
 }


alarm接收到代码:

public void onReceive(Context context, Intent intent) {
 
    Log.i(TAG, "CollectorAlarmReceiver invoked, starting CollectorService in background");



    context.startService(new Intent(context, CollectorService.class));



    Intent collectorService = new Intent(context,CollectorService.class);
 
    collectorService.putExtra("action", CollectorService.ACTION_BACKGROUND_REQUEST_MESSAGES);



    context.sendBroadcast(collectorService);
}
}



可以写2个后台service  ,两个service  互相监听,一个被强制关闭后,另外一个拉起来就行了....
比如腾讯这个流氓,在qq后台运行的时候会在桌面上创建一个一像素的界面....保证不被后台任务管理器kill掉


原文地址:http://www.itmmd.com/201503/660.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

如何实现android ListView-Items高亮 ?   上一篇
下一篇  android socket 链接java后台服务器
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!