概述
注意:这全部在我的AppWidgetProvider的updateAppWidget()中。像这样“循环”postDelayed()会发生什么问题吗?
我试图让我的小部件永远在两种颜色之间来回闪烁。这是通过让延迟的runnable发布另一个延迟可运行的处理程序来完成的,该处理程序本身发布另一个......等等。但是这样做会有潜在的内存问题吗?该小部件运行没有问题,但几小时后,它有可能会冻结或开始不规律地闪烁。这些症状显然是因为我的实施? (主要在postDelayed()中使用“this”)
final int blinkDelay = 1000;
final Handler myHandler = new Handler();
final Runnable runnable = new Runnable() {
boolean lightOn = true;
public void run() {
if (lightOn){
lightOn = false;
views.setInt(R.id.RelativeLayout1, "setBackgroundColor", Color.argb(150, 255, 248, 231)); //turn light "off"
appWidgetManager.updateAppWidget(appWidgetId, views);
myHandler.postDelayed(this, blinkDelay);
} else{
lightOn = true;
views.setInt(R.id.RelativeLayout1, "setBackgroundColor", Color.argb(220, 255, 248, 231)); //turn light "on"
appWidgetManager.updateAppWidget(appWidgetId, views);
myHandler.postDelayed(this, blinkDelay);
}
}
};
//start the blink loop
myHandler.post(runnable);
其余的重写方法不变。
2017-09-14
Kawaii
最后
以上就是聪慧小懒虫为你收集整理的android postdelayed 多个定时会干扰吗,像这样“循环”postDelayed()会发生什么问题吗?...的全部内容,希望文章能够帮你解决android postdelayed 多个定时会干扰吗,像这样“循环”postDelayed()会发生什么问题吗?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复