スレッドを使用して画像を背景として設定していますが、このスレッドにはダイアログがあります。ダイアログが開始され、壁紙が設定されると閉じます。これが今までのコードです
setWallbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final ProgressDialog myPd_ring=ProgressDialog.show(SingleWall.this, "Setting wallpaper", "", true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
WallpaperManager wallManager = WallpaperManager.getInstance(getApplicationContext());
try {
image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
wallManager.setBitmap(image);
Toast.makeText(SingleWall.this, "Wallpaper Set Successfully!!", Toast.LENGTH_SHORT).show();
myPd_ring.dismiss();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(SingleWall.this, "Setting WallPaper Failed!!", Toast.LENGTH_SHORT).show();
myPd_ring.dismiss();
}
}
}, 4000);
}
});
したがって、ボタンをクリックするとスレッドが開始され、4 秒間ダイアログが進行状況アイコンとともに表示されます。しかし、それは正しくありません!背景を設定する時間は、4 秒を超える場合もあれば、4 秒未満になる場合もあります。したがって、4000
画像を壁紙として設定するには、時間に基づいて計算する必要があります。出来ますか?
ps。多くの場合、AsyncTask を使用できませんNullPointerExceptions