2017-01-12 6 views
1

バンドルから別のフラグメントを開始するためにAsyncTaskを送信したいと思います。バンドルからAsyncTaskを送信する

したがって、私はシリアライズ可能なものを実装し、私のAsyncTaskを保存する別のクラスを作成しました。私はこのクラスをバンドルに入れ、それを使って別のフラグメントを作りたいと思っています。

public class SerializableTask implements Serializable { 

    private AsyncTask task; 

public SerializableTask(AsyncTask task) { 
    this.task = task; 
} 

    public AsyncTask getTask() { return this.task; } 
} 

は、この作業を行うか、私は、writeObjectまたはreadObjectメソッドメソッドを上書きする必要がありますか?

+0

asyncTaskを送信することはどういう意味ですか?実行する別のフラグメントにタスクを送信しますか? – adalPaRi

+0

はい。フラグメントAは、例えば、タスクを作成し、それを自分のクラスと直列化し、クラスBとクラスとタスクを保持するバンドルを開始します。その後、Bはタスクを実行します – 0x9E

+0

そして、なぜタスクを作成せずにフラグメントBで実行しますか?あなたが断片を伝えることができるなら、それは私が考えるより良い解決策です。開始時にフラグメントBに必要なデータを送信するだけです。 – adalPaRi

答えて

0

使用しているアプローチが正しくありません。バンドルではないタスクを介してデータを送信してから、同じデータでタスクを再作成してください。このバンドルは、データのみを渡すために使用されます。必要に応じて、データの形式でタスクの状態を送信し、同じ状態でタスクを再開することができます。

+0

どうすれば "doInBackground"、 "onProgressUpdate"、 "onPostExecute"メソッドを再作成できますか? – 0x9E

+0

古いデータで新しいタスクを作成するだけです – Manish

+0

私は何かが恋しいと思います。私は自分のプロジェクトに複数のAsyncTaskを持っていて、フラグAがこれらを作成し、フラグメントBにデータを与えます。最初のAsyncTaskAを送信することができ、しばらくしてAsyncTaskBを送信することができます(両方ともいくつかの他のフラグメントによって作成され、両方がFragmentBで実行される必要があります) – 0x9E

関連する問題