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. 他のアクティビティからアクティビティのタイマーを停止する方法
- 2. 他のアクティビティからアラームを停止する方法
- 3. Java Android AsyncTask - いつAsyncTaskの実行が停止しますか?
- 4. AsyncTaskを停止する際の例外
- 5. 一時停止とはAsyncTaskのAndroid
- 6. 別のアクティビティからAsyncTaskを実行
- 7. アクティビティのAsyncTaskをアプリケーションクラスから実行
- 8. 一時停止したアクティビティ
- 9. アクティビティからサービス内のCountdowntimerを停止する方法
- 10. アクティビティからSTART_STICKYアンドロイドサービスを停止する方法
- 11. 他のアクティビティが結果を返すまで、アクティビティを一時停止する方法はありますか?
- 12. Javascript関数は他のアクションからSafariを停止します
- 13. 他のスレッドからスレッドを停止する方法
- 14. 他のアクティビティを呼び出す方法AndroidアクティビティからAsyncTaskクラスを取得するNPEを取得する
- 15. AndroidでMediaPlayerを使用して他のアクティビティで再生音を停止する
- 16. アクティビティでAndroidサービスを停止する
- 17. Android Studio AsyncTask他のアクティビティへの結果を取得
- 18. アクティビティから着信音を鳴らすのが突然停止します
- 19. アクティビティで別のアクティビティを停止できません。
- 20. 他のアプリからのポップアップが表示されたときにAndroidアプリのアクティビティが停止する
- 21. AsyncTaskを開始/停止するためのAndroidハンドラインターフェイス
- 22. 最初のアクティビティの後にアプリケーションが停止します。第2アクティビティから第3アクティビティに移動する
- 23. 他のアクティビティを停止する代わりに、他のアプリケーションを介してダイアログを表示する方法
- 24. アクティビティが停止しています
- 25. キャッシングからjavascriptを停止
- 26. 子アクティビティを停止して親アクティビティに戻る
- 27. Android - 戻るボタンが押されたときにAsyncTaskを停止して前のアクティビティに戻る
- 28. アクティビティが停止すると、Androidはアクティビティのメンバー変数をクリーンアップしますか?
- 29. 無限ループでAsyncTaskを停止する方法は?
- 30. asynctaskスレッドをアンドロイドで停止する方法は?
あなたは以前にsharedprefrenceを使用していますか?それを使ってみてください。あなたの問題を解決します。 –