
package com.example.helloandroID;import java.io.file;import androID.os.AsyncTask;import androID.os.Environment;import androID.Widget.Toast;public class CheckTask extends AsyncTask<VoID, VoID, Boolean> {protected Boolean doInBackground(VoID... params) { while (true) { if (Environment.MEDIA_MOUNTED.equals(Environment .getExternalStorageState())) { // access external file String f = Environment.getExternalStorageDirectory() + "/schedule.rtf"; file s = new file(f); if (s.exists()) { return true; } } }}protected voID onPostExecute(Boolean result) { if (result == true) { Toast.makeText(CheckTask.this, "Hello", Toast.LENGTH_SHORT).show(); }}}我不断收到以下错误消息:
Toast类型的方法makeText(Context,CharSequence,int)是
不适用于参数(CheckTask,String,int)
我尝试搜索一些基本教程,它们以与上述相同的方式使用Toast.makeText.我不知道怎么了.
谢谢.
解决方法:
这是因为要将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;@OverrIDepublic 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(); } } }} 总结 以上是内存溢出为你收集整理的android-AsyncTask的问题全部内容,希望文章能够帮你解决android-AsyncTask的问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)