【发布时间】:2015-05-07 14:49:47
【问题描述】:
嗨,我试图在其他类中使用 asynctask,但是当我调用它时它不起作用
这是我的代码
package com.examplee.test;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
public class test extends Activity {
public static void main(String[] args) {
new ProgressTask(test.this).execute(); // THIS IS ERROR CANNOT USE THIS IN STATIC CONTEXT and when i change static thing class doesn't work anymore
}
private class ProgressTask extends AsyncTask<String, Void, Boolean> {
private ProgressDialog dialog;
public ProgressTask(test mainActivity) {
context = mainActivity;
dialog = new ProgressDialog(context);
}
private Context context;
protected void onPreExecute() {
this.dialog.setMessage("Please Wait For Some Time...");
this.dialog.setCancelable(false);
this.dialog.setTitle("Please Wait...");
this.dialog.setIcon(R.drawable.ic_launcher);
this.dialog.show();
}
@Override
protected void onPostExecute(final Boolean success) {
if (dialog.isShowing()) {
dialog.dismiss();
}
if (success) {
Toast.makeText(context, "Done", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "Some Error", Toast.LENGTH_LONG).show();
}
}
protected Boolean doInBackground(final String... args) {
// My Work i have to perform
return null;
}
}
}
谁能更正这段代码? 即使我尝试更改 progresstask.execute 上的所有内容,也没有任何效果:(
如果有人能花时间帮我解决问题,我将不胜感激:)
这一行是我在课堂上所需要的
public static void main(String[] args)
【问题讨论】:
-
这门课在我看来不是一成不变的......你如何开始这个活动?
-
您正在尝试在 Android 中运行
main方法。请参考 Android 开发者文档 -
我改变了话题,我的意思是任何类都不能执行 new ProgressTask(test.this).execute();它可以毫无问题地在 MainActivity 中执行
-
@eduyayo public static void main(String[] args) { 这是运行课程所必需的,我无法更改此行主线对不起,我不是 Java 专家,只是初学者需要代码帮助跨度>
-
是的,@radioactive,因此我对这个问题投了反对票。您不能在 android 运行时之外运行 android 运行时。您可以使用单元测试框架,但不能使用简单的
main
标签: java android android-asynctask