открытый класс BackgroundTasker расширяет AsyncTask {
int progress;
@Override
protected void onPreExecute() {
result.startAnimation(fadeIn);
result.setTextSize(32);
progressupdator(20);
result.setText("Starting...");
}
@Override
protected Long[] doInBackground(String... address) {
while (true) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress(new Long[] {
MainActivity.this.getvalue(address[0]) });
}
}
protected void onProgressUpdate(Long... values){
if(values[0]==Long.valueOf(333)) {
setProgress(100);
result.setText("N/A");
builder.setContentText("N/A");
notificationManager.notify(1,builder.build());
}
else{
setProgress(100);
result.setText(String.valueOf(values[0])+"ms");
builder.setContentText(String.valueOf(values[0])+"ms");
notificationManager.notify(1,builder.build());
}
}
protected void onPostExecute(int d) {
}
@ Переопределить public void onClick (View v) {
DatabaseReference myRef = database.getReference("message");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
BackgroundTasker r = new BackgroundTasker();
r.execute(dataSnapshot.getValue(String.class));
Log.d("Fireabse", "Value is: " + value);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w("Firebase", "Failed to read value.", error.toException());
}
});
}
});
Я хочу, чтобы при нажатии кнопки, подключенной к onClick
, r.execute
берет новые значения из базы данных Firebase Realtime и выполняет AsyncTask с новыми значениями.
Как мне это сделать?