asynctaskを使用してサーバーからファイルをダウンロードするアプリケーションを作成しました。それにはいくつかの活動があります。私はアクティビティAから1つのasynctaskを開始し、アクティビティBからそれを停止したいと思います。どうすればそれを達成できますか?他のアクティビティからasynctaskを停止
答えて
あなたの活動BにgetParentActivity()メソッドの型キャストを使用して、前のアクティビティのパブリックメソッドを呼び出すことが可能である:
((PreviousActivity)getParentActivity()).somePublicMethod();
のみ動作したい場合は、アクティビティAからのアクティビティBを開いた場合すべてのアクティビティからそのメソッドを呼び出せるようにするには、静的クラスを作成してアクティビティAのインスタンスを保存してみてください。この方法で、アプリケーションのどこにいてもメソッドを呼び出すことができます。これを行うときにはnull値にも注意してください。
これは静的クラスのサンプルです。
public static class Constants{
public static ActivityA activityAInstance;
}
あなたはActivityA(onCreate
メソッド)を開くことは、インスタンスの保存:
Constants.activityAInstance = ActivityA.this;
この部分はあなたの静的クラスにActivityAのインスタンスが保存されます。どこにいても、そのインスタンスにアクセスして公開メソッドを呼び出すことができます:
アプリは、あなたがしなければならないすべてはあるActivityZにある輸入ActivityAインスタンス静的クラスとを呼び出すこと:
はConstants.activityAInstance.somePublicMethodToStopTheAsyncTask();
私の意見では、あなたが活動Aでブールフラグを設定することができ、あなたがasynctaskを実行するときに、あなたがすべきこのフラグをいつでもチェックしてください。停止したい場合はフラグを変更するだけで、アクティビティBのこのフラグを変更してasynctaskを停止することができます。
これを試してください。
それは1つのasynctaskではありません。サーバーからダウンロードファイルを表示するには、リストビューに多くのasynctasksがあります。 –
LocalBroadcastIntentを使用してアクティビティBからアクティビティAにメッセージを送信できると思います.Aのメソッド受信者では、Asynctask.cancel(true)
を呼び出すことができます。 Asynctask.cancel(true)
を呼び出すときに、タスクを停止するには、if(isCanceled()){ break; }
をasynctaskのループに配置する必要があります。
上記の私のコメントを読んでください。 –
多くのタスクでこのアプローチを使用できます。 – sonngaytho
- 1. Java Android AsyncTask - いつAsyncTaskの実行が停止しますか?
- 2. 一時停止したアクティビティ
- 3. 他のアクティビティが結果を返すまで、アクティビティを一時停止する方法はありますか?
- 4. Javascript関数は他のアクションからSafariを停止します
- 5. AndroidでMediaPlayerを使用して他のアクティビティで再生音を停止する
- 6. 他のアクティビティを呼び出す方法AndroidアクティビティからAsyncTaskクラスを取得するNPEを取得する
- 7. アクティビティでAndroidサービスを停止する
- 8. アクティビティから着信音を鳴らすのが突然停止します
- 9. アクティビティで別のアクティビティを停止できません。
- 10. キャッシングからjavascriptを停止
- 11. 子アクティビティを停止して親アクティビティに戻る
- 12. Android - 戻るボタンが押されたときにAsyncTaskを停止して前のアクティビティに戻る
- 13. AsyncTaskを停止するとサービスが終了する
- 14. アンドロイドでASyncTaskスレッドを停止する方法
- 15. 無限ループでAsyncTaskを停止する方法は?
- 16. asynctaskスレッドをアンドロイドで停止する方法は?
- 17. アクティビティが停止すると、Androidはアクティビティのメンバー変数をクリーンアップしますか?
- 18. AsyncTaskイメージのロード中に停止しません。
- 19. バックグラウンドから30分後にアクティビティを殺すためにAndroidを停止する
- 20. AsyncTaskでHttpClientの実行を停止する方法はありますか?
- 21. アクティビティ間の共有asynctask
- 22. wf4を停止するアクティビティはありますか?
- 23. コールアンドロイドの1つのアクティビティから他のアクティビティのイベントをクリック
- 24. Javascript setTimeoutは他のスクリプトの実行を停止しますか
- 25. WIXインストールで他の誰かのサービスを停止する
- 26. 他のアクティビティからのテキストの変更
- 27. 他のアクティビティからのAndroidコールメソッド
- 28. アクティビティのサービス内のMediaPlayerを一時停止する
- 29. 他のアクティビティからの変更後のアンドロイド更新アクティビティのテキストビュー
- 30. iOS - アプリケーション外からのUILocalNotificationの停止
あなたは以前にsharedprefrenceを使用していますか?それを使ってみてください。あなたの問題を解決します。 –