java - Android AsyncLoader.onPostExecute 不执行

标签 java android

我做了一个简单的android示例,使用AsyncLoader读取html并将页面值放在Textfield上。

以前,它运行得很好。现在我给它添加了一个服务,我发现AsyncLoader失败了。 AsyncLoader.onPostExecute 永远不会被执行...

这是代码...

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    AirCondition = (TextView)findViewById(R.id.air);
    AsyncLoader load = new AsyncLoader();
    load.execute();
    StartService();
}
public class AsyncLoader extends AsyncTask<Void, Void, Boolean> {
    protected Boolean doInBackground(Void... params) {
        try {
            air = CommonMethod.GetAirCondition();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    protected void onPreExecute() {}
    protected void onPostExecute(Boolean result) {
        if (result) {
            AirCondition.setText(air);
        }
    }
}

这是我声明的 onStartCommand 服务...

public int onStartCommand(Intent intent, int flags, int startId){
    try{
        while(true)
        {
            Thread.sleep(10000);
            new Thread(){
                public void run()
                {
                    String result = CommonMethod.GetAirCondition();
                    if(Integer.parseInt(result.trim()) > 10)
                    {
                        Log.i("Allen","fuck");
                    }
                }
            }.start();
        }
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }
    return 0;
}

最佳答案

您的 onPostExecute()doInBackground() 应使用 @override 进行注释:

@Override
protected void onPostExecute(Boolean result) {
    ...

您的 onPreExecute() 可以被删除,因为默认实现不执行任何操作。

关于java - Android AsyncLoader.onPostExecute 不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841356/

相关文章:

android - 如何在 Firemonkey 移动应用程序中获取电话的联系人列表?

java - 无法在intellij idea中加载库jni ffmpeg

乱序多线程处理和对话框的Android问题

android - 为什么在使用 android-support-v4 时找不到 android.util.LruCache.*?

java - 在android Activity中显示docx文件的内容

java - textToBePresentInElement() 不适用于确切的文本

java - 如何通过插件获取当前分支名称

java - Firebase 使用 addTextChangedListener 检查用户名是否存在

java - JTable:更改 JCheckBox 的状态

java - Ivy :强制本地快照依赖