gpt4 book ai didi

java - 在 AsyncTask 中使用 publishProgress 方法时搞砸了

转载 作者:行者123 更新时间:2023-11-29 05:29:57 25 4
gpt4 key购买 nike

我正在尝试实现简单的内部数据存储代码。我想在其中显示一些后台进程的 ProgressDialog,在调用 publishProgress() 时该进程将递增 5。但它给我如下错误,

The method publishProgress(R.integer...) in the type AsyncTask<String,R.integer,String> is not applicable for the arguments (int)

代码如下。

public class loadSomeStuff extends AsyncTask<String, integer, String>
{
ProgressDialog dailog;
protected void onPreExecute()
{
//example of setting up something
dailog=new ProgressDialog(MainActivity.this);
dailog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dailog.setMax(100);
dailog.show();
}

@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String collected=null;
FileInputStream fis=null;

for(int i=1; i<=20; i++)
{
publishProgress(5);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
dailog.dismiss();
try {
fis=openFileInput(FileName);
byte[] dataArray = new byte[fis.available()];
while(fis.read(dataArray)!= -1)
{
collected=new String(dataArray);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fis.close();
return collected;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

return null;
}

protected void onProgressUpdate(Integer...progress)
{
dailog.incrementProgressBy(5);

}
protected void onPostExecute(String result)
{
DataResults.setText(result);
}

}

最佳答案

泛型不能使用值类型,因此您的 AsyncTask 需要使用 Integer:

extends AsyncTask<String, Integer, String>

关于java - 在 AsyncTask 中使用 publishProgress 方法时搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472660/

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