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 是 int,值为 2

不幸的是,onActivityResult永远达不到。在调用inside 之后,应用程序中的断点之后没有任何反应startActivityForResultsuper. startActivityForResult (intent, requestCode);在所有其他设备中,它跳回到onActivityResult.

如果intent为null,则APP正常工作(跳过的代码部分除外)并且不会冻结。

所以我的问题是为什么大多数设备onActivityResult都能正常调用,而另一方面又为什么会导致多台 Android 7 设备冻结?

编辑:

我发现startActivityForResult导致应用程序在某些设备上冻结,我现在添加android:launchMode="standard">到清单中。这解决了某些无法工作的设备的冻结问题。但是显然有一个视图更多的设备RESULT_CANCELED每次都会收到。

4

0 回答 0