2017-09-24 13 views
0

downloadTaskクラスを分割して新しいクラスファイルを作成しましたが、MainAcvtivityでそのクラスを呼び出そうとするとdownloadTask()を解決できません。MainActivity以外のアンドロイドクラスを呼び出すとシンボルを解決できません

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

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

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

} 

ヒント行い、このクラスのオブジェクトは他のクラスから作成することができませんので、あなたがprivateコンストラクタを持っている私のMainActivity.class

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 (android.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(); 


    } 
} 
+0

あなたの主な活動を報告したり、新しいdownloadTaskを試してください。 – Pavya

+0

@Pavya問題を解決しませんでした! –

+0

mainacitivity plusの 'downloadTask'クラスに関連するコードが見つかりませんでした。' context'はnullです。 –

答えて

1

です内側onCreatecontextがnullになるので

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

存在する! –

+0

それでは、 'private'は明らかにこのクラスのオブジェクトを作成させない問題だったので、あなたはそれをどのように使っているのかを示すことができます –

0

私はjava(Test)セクションでダウンロードしたファイルを間違えて作成し、移動した後、私の問題は解決しました。

+0

' private downloadTask'で動作していると思いますか?また、ここで明確な例外があります。 'context.getSharedPreferences( getString(R.string.last_update_key)、Context.MODE_PRIVATE);' –

関連する問題