デバイス固有の問題があります。私のアプリは でインテントを開始し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
しかし、明らかに、毎回受信するだけのデバイスがさらに表示されます。