Android处理程序问题

时间:2011-04-20 12:44:10

标签: android notifications handler

我有一个需要更新proceed_event通知的应用程序。通知有一个进度条,我需要每5分钟递增一次。我使用处理程序,但有些事情困扰着我,或者我根本不理解它们是如何工作的。

      if (progress<=24)
           {

    contentView.setProgressBar(R.id.status_progress,24,progress,false);
    Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT).show();
    progress++;
    mnNotificationManager.notify(IS_PARKED_ID, notification);
    mHandler.postDelayed(mUpdateTimeTaskProgressbar, 300000);

           }

这是代码。当设备屏幕关闭时,通知似乎没有更新。我过去曾经使用过Handlers,但我记得我每100毫秒更新一次。所以我的问题是,处理程序是以某种方式暂停,停止并重新启动,还是其他东西。你有一些像wake_lock这样的建议吗? 谢谢,西蒙 修改 忘记提及这一切都来自服务

2 个答案:

答案 0 :(得分:1)

gc会不时运行以释放设备上的内存。如果从UI线程运行,则可能也会收集通知的更新程序。

我正在使用service来显示正在进行的通知,这样我可以肯定,服务和通知都不会被停止/收集。

我的活动和服务之间的沟通我用处理程序解决了,但是也有很多技术。

答案 1 :(得分:0)

默认情况下,处理程序在UI线程的相同进程中运行,因此我认为您最好使用服务来更新进度条。 在这种情况下,您希望每5分钟更新一次UI。您可以使用AlarmManager启动警报服务来实现此目的。