我正在使用一个线程将图像设置为背景,在这个线程中我有一个对话框。对话框开始并且在设置壁纸时应该关闭。这是到目前为止的代码
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 秒!因此,4000应该以将图像设置为墙纸的时间为基础进行计算。是否可以?
附言。我不能使用 AsyncTask 因为我得到了很多NullPointerExceptions