在自己的类中编写了一个AsyncTask。
从B班调用它。
我想让它在A类中展示一些当前正在运行的Activity
。
我应该使用runOnUiThread()
吗?或者以某种方式setOwnerActivity(Activity)
?
我对于出了什么问题一无所知......
这是任务:
public class popTask extends AsyncTask<Void, Void, String> {
private Context con;
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
final Dialog dialog = new Dialog(con);
dialog.setContentView(R.layout.custom);
dialog.setTitle("New & Hot advertise");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Android custom dialog example!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.yoda);
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
return null;
}
public popTask(Context con){
this.con=con;
}
}
答案 0 :(得分:0)
您可以为此Async任务创建一个构造函数,该构造函数引用了Activity A.
例如:
public popTask(ClassA ref) {
super();
this.ref = ref;
// do stuff
}
然后,使用对Activity的引用,您可以调用activity的方法。如果你想展示一些东西,这个调用总是必须在onProgressUpdate或onPostExecute(从不在doInBackground 上)完成。
希望它有所帮助!