0

難しい質問があったので投稿します。

Activity の TabNewsActivity を拡張するクラスがあります

このクラスには、ネストされたクラス TabNewsActivity: DownloadData が含まれており、AsyncTask に拡張されています >>

このクラス TabNewsActivity は、私の Web サービスから復元されたデータを表示します。スポット DownloadData は非同期であるため、リストで Web サービスの値を取得できます。

更新値を実行するには(私のアプリケーションで=>更新)、これを行う必要があります:

DownloadData (). Execute ();

しかし、私は自分のコンテキストからそれを行うことはできません TabNewsActivity: s

このコマンドを再実行する方法が欲しいのですが、たとえば別のタブで。

ご協力ありがとうございました

4

3 に答える 3

1

TabNewsActivity のネストされたクラスではなく、別のクラス ファイルで DownloadData サブクラスを作成することをお勧めします。おそらく完了コールバックとして機能するように Handler を渡すことができます。このようにして、TabNewsActivity から DownloadData を実行し、完了時に TabNewsActivity で呼び出す Handler を渡すことができます。別のクラスから呼び出す場合も同じことが言えます。

于 2012-07-26T14:14:17.970 に答える
0

Service 内で AsyncTask を使用します。

于 2012-07-27T02:48:06.950 に答える
0

AsyncTask execute() メソッドは静的であるため、呼び出すために何かのインスタンスは必要ありません。次のように呼び出します。

AsyncTask.execute();

これにより、 doInBackground() メソッドにあるものが実行されます。私の知る限り、AsyncTask をインポートする限り、アプリのどこでも AsyncTask.execute() を呼び出すことができるはずです。

于 2012-07-26T13:56:41.047 に答える