我正在使用WallpaperManager设置墙纸,当我通过单击按钮设置单个墙纸时,它可以很好地工作。
但是主要功能是:当用户从AlertDialog输入时间时,墙纸应根据用户输入的时间在一个之后改变。当墙纸列表或阵列结束时,再次从1开始墙纸。
因此,问题在于,当用户从“警报”对话框输入时间时
//Below is my code I write by hand, actual code is in project
for(int i = 0; i<listofWall.length; i++){
Bitmap bitmap = here i get bitmap from ListOfWallpaper(i);
WallpaperManager wm = WallpaperManager.getInstance(getContext());
wm.setBitmap(bitmap);
Thread.sleep(userEnterTimeInSec*1000);
//I do below code for run loop again and again so that wallpaper change
after the end of wallpaper list
if(i==listOfWall.length-1){
i=0;
}
}
因此,当我运行应用程序并将WallPaperTime输入到Alert对话框并按PositiveButton(“确定”)时,应用程序用户界面帮助和错误出现在屏幕上是ANR(应用程序无响应)。
我也使用AsynckTask,但是由于Thread.Sleep()连续运行,因此出现了同样的错误。我也使用TimeUnit.Second.Sleep但条件相同。
因此,有一种方法或任何方法可以在用户输入时间后自动更改墙纸。
请分享您的代码,我将非常感谢您