編集:問題が最初の予想よりも深く実行されていることがわかりました。プロセスを確認したところ、Web ブラウザが「戻る」ときに、元のアプリケーション プロセスに戻らず、代わりに新しいプロセスを作成することがわかりました。その結果、アプリケーションの 2 つのインスタンスが同時に実行されます。これを解決するにはどうすればよいですか?これは、コールバックを処理する必要があるマニフェストのインテント フィルターです。
<activity
android:name=".LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="whodunit" android:scheme="callback"></data>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
そして、これは私の onResume です:
@Override
protected void onResume() {
super.onResume();
if (this.getIntent()!=null && this.getIntent().getData()!=null){
Uri uri = this.getIntent().getData();
if (uri != null && uri.toString().startsWith("callback://whodunit"))
{
Verifier verifier = new Verifier ( uri.getQueryParameter("oauth_verifier") );
new OnCallBackTask(verifier).execute();
}
}
else
new LoginTask().execute();
}