2011-09-10 4 views
0

私は様々なアクティビティを持つアンドロイドアプリを持っています。前回のアクティビティに戻るときのアイコンの一致

たとえば、ホーム画面と更新画面があります。

ホーム画面はリストアクティビティです。

ホーム画面のボタンをクリックすると、サーバーからデータベースを更新する更新画面が表示されます。理論的には、更新後にホーム画面に戻るときは、リストを変更して更新を反映させる必要があります。

次のように更新画面に行くためのコードは次のとおりです。

Button synch = (Button) findViewById(R.id.synchButton); 
    synch.setOnClickListener(new OnClickListener() { 
     public void onClick(View viewParam) { 
      Intent intent = new Intent(HomeScreen.this, SynchScreen.class); 
      startActivity(intent); 
     } 
    }); 

と更新後のホームスクリーンに戻って戻るためのコードは次のとおりです。

main_menu.setOnClickListener(new OnClickListener() { 
     public void onClick(View viewParam) { 
      finish(); 
     } 
    }); 

リストからコンパイルされますonStartで実行される非同期タスクなので、ホーム画面に戻るときにonStartが実行され、常に最新のバージョンのリストが表示されます。

私のエミュレータでは、私はいつも更新リストを取得しますが、私が電話機でそれを実行すると、リストは更新されず、アップデートを行う前に画面の状態に戻ります。

おかげ

ケビン

答えて

1

は、AndroidのドキュメントのActivity lifecycleセクションを確認してください。ビューを更新するコードは、新しいアクティビティを起動するときにアクティビティが強制終了されない可能性があるため、おそらくonResumeに移動する必要があります。

+0

ありがとうございます。このような明白な間違いがあります。最初にそこに着いたので、これが受け入れられる回答です。 –

1

Asynctaskを開始するコードをonResumeに入れてください。活動のライフサイクルに関する文書を読んでください。

1
@Override 
public void onResume() { 
    super.onResume(); 
Apaptor.refreshListView(Vector);  
} 
関連する問題