2013-06-01 69 views
0

我的应用程序我正在使用处理程序,它在每1分钟后完成其工作,它在我的MainActivity中的问题是,一段时间后它会停止工作。这是发生在三星galaxy笔记gt n7000,但是当我在其他非品牌手机运行相同的代码,它工作正常,我使用Handler作为以下有什么不对?处理程序在一段时间后停止

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
final Handler handler = new Handler(); 
     Runnable runnable = new Runnable() 
     { 
      public void run() 
      { 
         //doing some Task 
       handler.postDelayed(this, 60000); 
      } 
     }; 
     runnable.run(); 
} 
+0

如果没有上下文,很难正确回答这个问题,所以请带上一个。 –

+0

我有同样的问题作为处理程序得到停止,如果手机进入睡眠或其被锁定。您可以使用alarmmanager它的作品,即使电话在睡眠mode.hope这可以帮助你。 –

回答

0

由于很多原因,处理程序可能会停止工作。

两个显而易见的是:

  • 过程中被杀害
  • CPU不再做任何事情,因为手机去睡觉

请注意,您的代码会导致内存泄漏的活动被破坏后。

无论如何,使用AlarmManager为你想达到的目的。

编辑:

罚款(和相当短)了解为什么AlarmManager是CommonsWare正确的方法:http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/

0

或者你可以使用一个服务..(服务与通知中不被Android操作系统杀死)。 某些应用程序,如Rounder和GloveBox正在使用通知,以防止它们被系统杀死。

+0

服务不会阻止CPU懒得执行。 ;) –

+0

但是,如果您希望即使设备进入睡眠模式,您的应用程序仍能正常工作,您必须使用服务,并更好地将它们用于通知。 – Alex

相关问题