1

編集:問題が最初の予想よりも深く実行されていることがわかりました。プロセスを確認したところ、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();

}
4

0 に答える 0