我有一个特定于设备的问题。我的应用程序以 开头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 之后,应用程序中的断点之后没有任何反应startActivityForResult
。super. startActivityForResult (intent, requestCode);
在所有其他设备中,它跳回到onActivityResult
.
如果intent为null,则APP正常工作(跳过的代码部分除外)并且不会冻结。
所以我的问题是为什么大多数设备onActivityResult
都能正常调用,而另一方面又为什么会导致多台 Android 7 设备冻结?
编辑:
我发现startActivityForResult
导致应用程序在某些设备上冻结,我现在添加android:launchMode="standard">
到清单中。这解决了某些无法工作的设备的冻结问题。但是显然有一个视图更多的设备RESULT_CANCELED
每次都会收到。