gpt4 book ai didi

java - AsyncTast 不调用 onPostExecute

转载 作者:行者123 更新时间:2023-12-01 16:36:47 25 4
gpt4 key购买 nike


下面是应该执行某些操作然后调用 onPostExecute 事件的代码的一部分。
由于某种原因,它没有调用它,并且在 eclipse 中我可以看到该方法被标记为黄色(未使用的方法)...
我不明白为什么会这样......
你知道为什么吗?
谢谢你!
PS:我查看了这里的一些帖子,但没有找到我的解决方案......

    final ImageButton sync = (ImageButton) findViewById(R.id.syncChanges);
sync.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
sync.setImageResource(R.drawable.none);
sync.setBackgroundResource(R.drawable.animation);
final AnimationDrawable frameAnimation = (AnimationDrawable) sync.getBackground();
frameAnimation.start();
class DownloadFilesTask extends AsyncTask<String, Void, String[]> {
protected String[] doInBackground(String...strings) {
try {
OptionScraper.run(strings[0], Integer.parseInt(strings[1]));
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return OptionScraper.GetChanges();
}
protected void onPostExecute() {
InitChangesToText();
frameAnimation.stop();
sync.setImageResource(R.drawable.sync);
}
}
new DownloadFilesTask().execute(classLetter,classNum);


}
});

最佳答案

您没有覆盖onPostExecute()正确。它需要一个参数(从 doInBackground() 返回的对象)。但是您可以使用不带参数的签名覆盖/创建该方法。这意味着框架调用默认实现而不是您自己的实现。它什么也不做。

所以改变

protected void onPostExecute() {

protected void onPostExecute(String[] result) {

在这种情况下。我还建议添加 @Override该方法的注释,在这种情况下,Eclipse 或类似的工具应该首先指出这一点。

关于java - AsyncTast 不调用 onPostExecute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183360/

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