2010-11-30 3 views
4

Я хочу обновить активность, так как я хочу, чтобы при отсутствии какого-либо события какая-то работа выполнялась, а действия вызывали сами. Итак, я хочу знать, есть ли какой-либо вариант в android, чтобы обновить активность самостоятельно.Как обновить активность?

+1

Если вы используете BaseAdapter или ArrayAdapter, просто вызовите notifyDataSetChanged(), чтобы обновить ваше представление. – 100rabh 2010-11-30 06:43:32

+0

@ 100rabh: справа. если он обновляет список. он должен написать, что и как он на самом деле пытается обновить. чем мы могли бы дать лучшую информацию. – 2010-11-30 07:04:21

ответ

5

Вы можете сделать это самостоятельно через Handler, на котором вы называете postDelayed (..)

http://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable, длинный)

это в вашем классе:

private final Handler handler = new Handler(); 

сделать функцию вызванный: doTheAutoRefresh(), который делает:

private void doTheAutoRefresh() { 
    handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       doRefreshingStuff(); // this is where you put your refresh code 
       doTheAutoRefresh();     
      } 
     }, 1000); 
} 

Назовите это fu в вашем onCreate.

ПРИМЕЧАНИЕ: это основной подход. подумайте о том, чтобы остановить это после того, как onPause был вызван и возобновить его после onResume. Посмотрите класс обработчика, чтобы узнать, как его удалить.

1

Вы можете создать поток и и вызвать обновление() с задачей, которую требуется обновить

-1

для других вопросов, который я вытащил наиболее эффективных способов сделать это являются:

finish();startActivity(getIntent()); 

иЛИ

// Refresh main activity upon close of dialog box 
Intent refresh =new Intent(this, ActivityWeAreIn.class); 
startActivity(refresh); 

Примечание: это также работает с объектами деятельности или фрагментов с помощью getActivity()