0

サーバーにデータを送信するアクティビティがあり、「送信」ボタンをクリックすると、現在のアクティビティが終了してメインのアクティビティに戻ります。MainActivity では、AsyncTask を使用してデータベースからデータをフェッチしました。現在のアクティビティが終了したときに MainActivity のコンテンツを再取得する方法は?

MainActivity で次のようにしようとしましたが、アプリが正しく起動せず、終了して起動し、終了して起動し続けます...

protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    finish();
    startActivity(getIntent());
}
4

1 に答える 1

0

これに対する潜在的な解決策は、アクティビティにAsyncTaskLoaderを実装し、アクティビティにLoaderManager.Callbacksインターフェイスを実装させることです。MainActivity が一時停止されている場合でも、AsyncTaskLoader はブロードキャスト インテントをリッスンできます。MainActivity を再起動すると、ローダーは更新されたコンテンツを配信します。

私が含めたリンクは、これが API 11+ からのみ利用可能であることを示唆していますが、互換性 v4 でも利用可能です。

Loader の実装例については、Android Design Patternsに非常に優れたブログ シリーズがあります。ユーザーが送信ボタンを押すと、ローダーがブロードキャストインテントをリッスンする独自のオブザーバーを持っている状況を想像できます。

于 2012-11-03T22:04:51.083 に答える