android-AsyncTask的问题

android-AsyncTask的问题,第1张

概述packagecom.example.helloandroid;importjava.io.File;importandroid.os.AsyncTask;importandroid.os.Environment;importandroid.widget.Toast;publicclassCheckTaskextendsAsyncTask<Void,Void,Boolean>{protectedBooleandoInBackground(Vo

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的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1083673.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存