0

デバイス固有の問題があります。私のアプリは でインテントを開始しstartActivityForResultます。これは、一部の Android 7 デバイスでのみ、ほとんどすべてのテスト デバイスで動作します。これにより、APP がフリーズし、GUI が反応しなくなります。

コードは次のようになります。

private void executeAction() {

    if("connect".equals(mStringAction)){

        Intent intent = VpnService.prepare(MainActivity.this);

        if(intent != null){
            startActivityForResult(intent, REQUEST_CONNECT_VPN); // Leads to freeze on some devices like Bacon android 7.1.2 Lineage OS
        }else{
            onActivityResult(REQUEST_CONNECT_VPN, RESULT_OK, null);
        }

REQUEST_CONNECT_VPN は値 2 の int です

残念ながら、onActivityResult到達することはありません。startActivityForResult内で呼び出しsuper. startActivityForResult (intent, requestCode);た後、アプリのブレークポイントの後に何も起こりません。他のすべてのデバイスの中で、にジャンプして戻りonActivityResultます。

インテントが null の場合、APP は正常に動作し (スキップされたコード部分を除く)、フリーズしません。

私の質問は、ほとんどのデバイスがonActivityResult適切に呼び出す理由と、一方でいくつかの Android 7 デバイスでフリーズが発生する理由です。

編集:

startActivityForResult一部のデバイスでアプリがフリーズする原因が判明したandroid:launchMode="standard">ため、マニフェストに追加しました。これにより、動作しない一部のデバイスのフリーズが修正されました。RESULT_CANCELEDしかし、明らかに、毎回受信するだけのデバイスがさらに表示されます。

4

0 に答える 0