本人在Service中开启了一个定时器,每隔一段时间,通过GPS获取位置,但是服务运行30-40分钟后,不再获取位置(服务还在运行中),在程序中也加了PowerManager相关的操作,在2.2(包括2.2)之前的版本都没问题,在2.3上就不行了,通过查看logcat,发现了这样的错误ERROR/NetStatUtils(2322): The apnName is null, should be some error...和ERROR/dalvikvm(2338): could not disable core file generation for pid 2338: Operation not permitted
 其中pid 2338指的是我自己服务的pid......................
 求助!这个是什么错误,如何解决?

解决方案 »

  1.   

    手机如果休眠,CPU就停止运行了,所有服务都停止,只能用alarm唤醒。
      

  2.   

    呵呵  看你怎么做了啊  实现方法挺多的  楼上哥们说了一个, 是可以的。 你也可以每次执行的时候都开启一个Activity。 该Activity是空白页面,然后开启就关闭它。 不让手机休眠也行啊 呵呵
      

  3.   

    重点是The apnName is null, 你可以贴出一些相关代码么?
    在电源管理应用方面,Android2.3采取了更加积极的策略。通过在合理情况下关闭后台应用,确保了最高的性能和最长的续航时间。
      

  4.   

    //服务开始
    public int onStartCommand(Intent intent, int flags, int startId)
     {
    // TODO Auto-generated method stub
    pm = (PowerManager) getApplicationContext().getSystemServic(Context.POWER_SERVICE);
            wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Service");
            wakeLock.acquire();
            wakeLock.setReferenceCounted(false);
    timeTask();//定时器
    return super.onStartCommand(intent, flags, startId);
    }Timer mTtimer = new Timer();
    public void timeTask()
    {
       mTtimer.schedule(new TimerTask() {
    @Override
    public void run() {
    // TODO Auto-generated method stub
     dealGPS();//处理GPS定位         }
    }
    }, 1000,1000);
    }
    这是关键代码,麻烦你看看.....