AsyncTask
ソーシャル メディアにステータスを投稿するために使用しています。
private class PostOnSocialMedia extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
pDialog.setTitle(R.string.posting_status_on_social_media);
Log.d(TAG, "onPreExecuteCalled.");
}
@Override
protected String doInBackground(String... params) {
Log.d(TAG, "doInBackground.");
currentActivity.this.twitter.tweet(params[0]);
currentActivity.this.facebook.post(params[0]);
currentActivity.this.googlePlus.share(params[0]);
return null;
}
@Override
protected void onPostExecute(String result) {
if (pDialog.isShowing()) {
pDialog.dismiss();
}
// Start next Activity when posted on all social media.
Intent intent = new Intent(currentActivity.this,
nextActivity.class);
intent.putExtra("userMatches", userMatches);
startActivity(intent);
Log.d(TAG, "onPostExecute.");
}
}
ユーザーがログインしていない場合、たとえば、 Twitterページを表示Twitter
するために新しいページを開始するIntent
必要があります(ユーザーがログインできるようにするため)。これにより、フローが戻りAsyncTask
、メソッドが呼び出されますonPostExecute()
。そして、新しいアクティビティが開始されます。
しかし、私はこれを望んでいません。私が望むのは、ユーザーがログインしTwitter
てからアプリケーションに戻ることです(ユーザーがログインフローをクリックすると、現在のアクティビティに戻ります。ただし、アクティビティは、ソーシャルメディア投稿への呼び出しを開始したものではなく、新しいアクティビティとして作成されます) )。アプリケーションに戻ると、Twitter
クラスのメソッドを呼び出して、未完了の投稿タスクを完了します。そしてそれが終わったら、私だけが次の活動に行きたいです。
それで、とにかくこの状況を処理する方法はありますか?
編集:と を使用し
てこれを解決することは可能 ですか?onSaveInstanceState(Bundle savedInstanceState)
onRestoreInstanceState(Bundle savedInstanceState)