Android 安卓处理器问题

Android 安卓处理器问题,android,notifications,handler,Android,Notifications,Handler,我有一个应用程序需要更新正在进行的事件通知。通知有一个进度条,我需要每5分钟增加一次。我使用处理程序,但有一些事情困扰着我,或者我根本不明白它们是如何工作的 if (progress<=24) { contentView.setProgressBar(R.id.status_progress,24,progress,false); Toast.makeText(getApplicationContext(),progress, Toast

我有一个应用程序需要更新正在进行的事件通知。通知有一个进度条,我需要每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);

           }

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

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


我的活动和我用处理程序解决的服务之间的通信,但是也有很多技术。默认情况下,处理程序在UI线程的同一进程中运行,因此我认为您最好使用服务来更新进度条。
在这种情况下,您希望每5分钟更新一次UI。您可以使用AlarmManager启动报警服务来实现这一点。

它是从服务运行的,但您不认为使用AlarmManager做得过火了吗,因为我必须处理广播。它是从服务运行的,忘了提及。问题是,这种情况一直都在发生时间,而不仅仅是一段时间。在这两天我一直在测试这一点,情况就是这样。我正在考虑使用计时器解决这个问题。如果5分钟是固定速率的计划,那么你可以使用计时器,在tas的run方法中,你可以收集必要的数据进行更新。之后,你可以调用你的处理程序来更新progressbar。这是修复方法艾德,所以我想我会用定时器。谢谢你的帮助