我有特定于设备的问题。
我的应用程序启动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
永远不会到达。在startActivityForResult
内调用后,super. startActivityForResult (intent, requestCode);
在应用中的断点后没有任何反应。在所有其他设备中,它会跳回onActivityResult
。
如果intent为null,则APP正常工作(跳过的代码部分除外)并且不会冻结。
所以我的问题是为什么大多数设备正确调用onActivityResult
以及为什么它会导致另外一些Android 7设备被冻结?
编辑:
我发现startActivityForResult
导致应用冻结在某些设备上,我现在将android:launchMode="standard">
添加到清单中。这修复了一些不起作用的设备的冻结。但显然有一种观点,每次只会收到RESULT_CANCELED
的更多设备。