0

我的应用程序我正在使用处理程序,它每 1 分钟完成一次工作,在我的 MainActivity 中,问题是一段时间后它停止工作。这是在三星 Galaxy Note 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();
}
4

2 回答 2

0

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

两个明显的是:

  • 进程被杀死
  • CPU停止做任何事情,因为手机进入睡眠状态

请注意,您的代码在 Activity 被销毁后会导致内存泄漏。

无论如何,使用AlarmManager来实现您想要实现的目标。

编辑:

一个很好的(而且相当短的)阅读为什么AlarmManager是来自 CommonsWare 的正确方法:http ://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/

于 2013-06-01T06:09:08.810 回答
0

或者你可以使用服务..(带有通知的服务不会被安卓操作系统杀死)。Rounder 和 GloveBox 等一些应用程序使用通知来防止它们被系统杀死。

于 2013-06-01T06:10:37.977 回答