Когда я извлекаю значение в результатах. Я ничего не получаю, я думаю, что значение не передается от doInBackground
до onPostExecute
. Любая идея, что не так? или я передаю его неправильным образомЗначение asyncTask не передается
class calculateTask extends AsyncTask<String, String, String>
{
@Override
protected String doInBackground(String... params) {
Thread t= new Thread();
try {
t.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int pix=0;
int circ=0;
int width1=mBitmap.getWidth();
int height1=mBitmap.getHeight();
for(int i=0;i<width1;i++)
{
for(int j=0;j<height1;j++)
{
if(mBitmap.getPixel(i, j)==Color.WHITE)
{
pix++;
}
if(mBitmap.getPixel(i, j)==Color.LTGRAY)
{
circ++;
}
}
}
int percentage=100-((pix-circ))*100 ;
String p=intToChar(array,percentage);
return p;
}
@Override
protected void onPostExecute(String p) {
Intent i= new Intent(circle1.this,results.class);
i.putExtra("perc", p);
startActivity(i);
//super.onPostExecute(result);
}
}
public String intToChar(char[] array, int pix) {
// TODO Auto-generated method stub
String b="";
int i = array.length - 1;
while (pix > 0 && i >= 0) {
array[i--] = (char) (48 + pix % 10);
pix /= 10;
} b = new String(array);
return b;
}
Почему у вас есть 'Thread t = new Thread()' doInBackground в вызове в фоновом потоке. Сбой приложения? – Raghunandan
приложение, над которым я работаю, должно остановиться на 10 секунд, прежде чем переходить к следующему действию. –
'sleep' - статический метод. вам не нужно создавать переменную 't' – aim