Shi*_*lla 0 android android-asynctask
我正在使用异步任务在菜单项单击上设置壁纸但它继续运行并且不会停止.这是我正在使用的代码:
class ImageTask extends AsyncTask<Void, Void, Void> {
Context c;
ProgressDialog pd;
public ImageTask(Context ctx) { this.c=ctx; }
@Override
protected void onPreExecute() {
pd=ProgressDialog.show(c, "Please Wait", "Setting Wallpaper...");
}
public void onPostExecute() {
pd.dismiss();
Toast.makeText(c, "Wallpaper set successfully", Toast.LENGTH_SHORT).show();
}
protected Void doInBackground(Void... params) {
WallpaperManager wm1=WallpaperManager.getInstance(c);
try { wm1.setBitmap(ImageFrag1.bmg1); }
catch (IOException e) { e.printStackTrace(); }
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
并在项目选择功能我这样做:
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_wall: {
/*WallpaperManager wm=WallpaperManager.getInstance(getActivity().getApplicationContext());
try{
wm.setBitmap(bmg1);
Toast.makeText(getActivity().getBaseContext(), "Wallpaper set successfully",Toast.LENGTH_SHORT).show();
} catch(IOException e) {
oast.makeText(getActivity().getBaseContext(), "Wallpaper not set successfully",Toast.LENGTH_SHORT).show();
}*/
ImageTask it1=new ImageTask(getActivity());
it1.execute();
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?谢谢
该onPostExecute()方法的签名是不正确的,不覆盖的功能AsyncTask超.异步任务不是"连续运行",只是进度对话框永远不会被解雇.
要解决它,请更换
public void onPostExecute()
Run Code Online (Sandbox Code Playgroud)
同
@Override
protected void onPostExecute(Void result)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |