Почему мой asynctask не выполняется при первом нажатии кнопки, но выполняется при втором нажатии
@SuppressLint("StaticFieldLeak")
class Asynctask_kwh_used extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... voids) {
db = new DatabaseHelper(getApplicationContext());
sqLiteDatabase = db.getReadableDatabase();
Cursor cursor1 = sqLiteDatabase.rawQuery("SELECT '"+ etext1.getText().toString() +"' - last_record * "+Multiplier+" FROM Consumer WHERE account_no = '" + account_no.getText().toString() + "'", null);
while (cursor1.moveToNext())
{
s1= cursor1.getString(0);
}
cursor1.close();
return null;
}
}
Log Кажется, что doInbackground выполняется после моего оператора if, но Перед этим я ставлю асинхронный метод
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference
W/System.err: at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
W/System.err: at java.lang.Double.parseDouble(Double.java:539)
at com.vicjames.qiimeterreader.ManageReading$6$1.run(ManageReading.java:360)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
D/Surface: lockCanvas
D/Surface: lockCanvas
V/TAG: doInbackground
Он указывает на эту строку
if (Double.parseDouble(s1) > (Double.parseDouble(s2) * 1.5) || Double.parseDouble(s1) < 0)