gpt4 book ai didi

java - Android AsyncLoader.onPostExecute 不执行

转载 作者:行者123 更新时间:2023-12-01 13:40:29 25 4
gpt4 key购买 nike

我做了一个简单的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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com