两种方法,第一种,把你的程序定义为系统程序,然后绕过android的省电机制,让他保持后台运行。
第二种是定时点亮屏幕一下,以保持你程序的激活。
其实后台一直跑的程序是android最不提倡的,浪费电,而且没意义。比如lz说的计时工具,你完全可以通过计算开始时的时间,到点亮屏幕唤醒程序的时间之间的差值判断经过了多长时间,一直运行的计时除了耗费用户手机点亮没有任何其他意义

解决方案 »

  1.   

    1. 普遍做法, 在service中控制计时器的开始结束2. 比较麻烦的做法,  在activity的生命周期中控制计时器. onPause时将计时器的信息存入SharedPreferences, 比如当前系统时间, 计时器已经计的时间等, 在onResume时提取他们, 重新设置计时器的开始时间和显示... 这是由于我的某个应用有特殊需求, 我无耐之举
      

  2.   

    还是用 Service 吧,就跟没有界面的 Activity 一样,有自己的生命周期,可以独立后台运行至于数据传递,推荐用广播 Broadcast……
      

  3.   

    楼上说的都不全还有的很可笑的。。
    你 把 传感器监听 放在 一个服务里  service    具体服务的使用方法 自己学吧。然后加上  cpu 保持唤醒的代码 if (linshi==true){
      PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
      m_wklk = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getCanonicalName()); 
      m_wklk.acquire(); //设置保持唤醒
     }else{
      
    if (m_wklk !=null && m_wklk.isHeld()) 
    {
    m_wklk.release();// 取消保持
    m_wklk = null;

     }