android postdelayed 多个定时会干扰吗,像这样“循环”postDelayed()会发生什么问题吗?...

注意:这全部在我的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值