有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法解析在MainActivity之外调用安卓类时的符号

我想拆分我的downloadTask类,并创建了一个新的类文件,但当我试图在MainAcvtivity中调用该类时,我无法解析downloadTask()

public class downloadTask extends AsyncTask <String ,Void,String>{

public String desURL;
public String Date;
Context context;
private downloadTask(String desURL, String Date,Context context){

    this.desURL = desURL;
    this.Date = Date;
    this.context = context;

}

@Override
protected void onPreExecute() {
    super.onPreExecute();

    //this method will be running on UI thread

}

@Override
protected String doInBackground(String... args){

}


@Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);

    //this method will be running on UI thread

}

}

请帮助解决此问题,并在MainActivity中使用我的downloadTask类

这是我的主要活动。阶级

 public class MainActivity extends AppCompatActivity {
Context context = this;
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.last_update_key), Context.MODE_PRIVATE);
String lastUpdate = sharedPref.getString(getString(R.string.last_update_key),"0");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (安卓.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    if(lastUpdate == "0"){

        Toast.makeText(this,R.string.need_for_update,Toast.LENGTH_LONG).show();


    }
}

共 (2) 个答案

  1. # 1 楼答案

    我在java(测试)部分错误地创建了downloadTask文件,移动它之后,我的问题就解决了

  2. # 2 楼答案

    您有一个private构造函数,因此无法从其他类创建此类的对象,因此请将其设置为public

    /*private*/ public downloadTask(String desURL, String Date,Context context){
    
        this.desURL = desURL;
        this.Date = Date;
        this.context = context;
    
    }
    

    提示:移动到onCreate内的代码下方,因为context将为空

    sharedPref = getSharedPreferences(
            getString(R.string.last_update_key), Context.MODE_PRIVATE);
    lastUpdate = sharedPref.getString(getString(R.string.last_update_key),"0");