2013-09-14 2 views
0

В моей деятельности я получаю сообщения, которые хранятся в базе данных, а затем в списке. В моем сценарии активность не знает, когда сообщение получено, поэтому список не обновляется. Пожалуйста, предложите мне обновить активность и сохранить активность. Спасибо.Освежающая активность при некоторой операции

+1

Использование 'Intent's' и' BroadcastReceiver ' –

ответ

1

Вы можете обновить ListView по

myListView.invalidateViews(); 

и освежить acitvity вы можете использовать

finish(); 
startActivity(getIntent()); 
1

я должен предпочесть обновить данные о ListView, а не обновления активности. Но если вы считаете, что для вас необходима освежающая деятельность, вам может помочь следующий код. Вы можете использовать таймер, который будет запускаться через некоторый интервал.

import java.util.Timer; 
import java.util.TimerTask; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

private Timer RefreshActivity; 

@Override 
public void onResume() { 
    super.onResume(); 
    RefreshActivity = new Timer(); 
    RefreshActivity.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      runOnUiThread(new Runnable() { 
       public void run() { 
        refresh(); 
       } 
      }); 
     } 
    }, 10000, 10000); // updates each 10 secs 
} 

private void refresh() { 
    Toast.makeText(this, "update", 1).show(); 
    //you can fetch data here and update the list if possible. 

    //or just finish activity and then recreate the activity 
    finish(); 
    startActivity(getIntent()); 
} 

@Override 
public void onPause() { 
    RefreshActivity.cancel(); 
    super.onPause(); 
} 
} 
Смежные вопросы