定期的にタスクを実行するバックグラウンドスレッドを実行するアプリケーションがあります。UIスレッドは、いくつかの異なるアクティビティを移動します。
私が使用したチュートリアルはこのブログにあります。その要点は次のとおりです。
- Threadを拡張するクラスを作成します
public final class JSONThread extends Thread {
- このクラスで、MessageQueueにタスクを追加し、可能な場合は実行を促すメソッドを定義します。
public synchronized void enqueueJSON(final JSON.JSON task) {
ただし、メインアクティビティで最初のオブジェクトを作成した後、別のアクティビティに移動すると、スレッドにバインドされたオブジェクトが明らかに失われます。そのオブジェクトのメソッドを呼び出すことができなくなりました(したがって、キューに追加できません)。
これが私の側のアーキテクチャの誤った決定によるものなのか、それとも明白な解決策の監督によるものなのかはわかりません。何か案は?単純なタスク用の5つのスレッドのプールが少し多すぎるように見えるため、この目的でAsyncTaskを回避しようとしていることに注意してください。