Это потому, что вы передаете экземпляр объекта CheckTask в makeText. Вам нужно передать экземпляр / контекст вашей деятельности.
Является ли ваша AsyncTask внутренним классом реальной деятельности? Вот как работает приведенный ниже пример, и я всегда видел, как это делается, глядя на код других людей.
Вот рабочий пример. Не обращая внимания на название пакета, я некоторое время назад пытался создать шагомер и просто использовал этот проект для этого.
package jm.pedometer;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.Toast;
public class MainView extends Activity {
Chronometer mChronometer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mChronometer = (Chronometer)findViewById(R.id.Chronometer01);
mChronometer.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/digital_clock.ttf"));
CheckTask testTask = new CheckTask();
testTask.execute();
}
/*
* This AsyncTask is an inner class within an Activity
*/
public class CheckTask extends AsyncTask<Void, Void, Boolean> {
protected Boolean doInBackground(Void... params) {
return true;
}
protected void onPostExecute(Boolean result) {
if (result == true) {
Toast.makeText(MainView.this, "Hello", Toast.LENGTH_SHORT).show();
}
}
}
}