0

私はSIPアプリケーションを作成しています.1つのことを除いて、ほとんどすべてが機能しています。SIP コールが発生したときにアクティビティを起動できません。

私は、着信コールなどの処理を処理する「電話」サービスを開始する SIP ライブラリを使用しています。「電話」のインスタンスを作成するときに、何が必要かを詳しく説明するリスナーを登録します。着信コールを処理するために、「OnIncommingCall」リスナーを登録します。

その時点でアプリが現在開いていない場合は、アプリを起動します。だから私のリスナーは:

thisPhone.setIncomingCallListener(new OnIncomingCallListener() 
    {
        public void OnIncomingCall(String remoteContact, int accountId)
        {
            if(MainActivity.this.getIsOpen())
            {
                MainActivity.this.setIsCallIncomming(true);
                MainActivity.this.setCurrentCaller(remoteContact);
                MainActivity.this.setMainUIEles();
            }
            else
            {
                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                i.putExtra("isCallIncomming", true);
                i.putExtra("currentCaller", remoteContact);
                i.putExtra("isRegistered", true);
                i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);
            }
       }
    }); //incoming call listener

ただし、電話がかかってくると鳴りますが、アプリは開きませんが、電話がまだ鳴っている間にランチャーからアプリを開くと、アプリが開き、電話がかかっていることがわかります。

リスナーを定義したアクティビティを開始しようとしているために問題が発生していますか?

あらゆる種類のフラグと組み合わせ (SINGLE_TOP など) を試しましたが、動作しません。

どんな助けでも大歓迎です!

DJウードレン

4

1 に答える 1

0

さて、これは私のばかげた間違いでした。

コードのどこで各ビットが動いているかを確認できるようにトーストをいくつか入れた後、getIsOpen() が決して false を返さないことに気付きました。これは、 onPause() メソッドと onDestroy() メソッドで呼び出されていなかったためです...

おっと!

于 2012-08-13T14:42:50.127 に答える