背景:在Android平台上编码仅需4个月,因此我不是所有高级功能的专业人士。
场景:我的Android应用程序(在Google Play中存在几年)刚刚开始出现QA向我报告的问题:当应用程序处于后台时,它有时会自动启动其他应用程序(消息,Chrome)并显示它没有连接时的弹出消息。应该注意的是,该设备确实有wifi连接。
更宽松的细节包括这只发生在手机(不是平板电脑)上,只发生在wifi(非手机)上。我虽然不相信这一点。据报道,弹出窗口首先覆盖了消息应用程序,然后我的整个应用程序都在弹出窗口后面。
我意识到这是一个非常模糊的问题:Android应用程序有哪些机制可以表现出这种行为?
其他详情:
App Config:
minSdkVersion 19
targetSdkVersion 25
应用Permissions:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
应用代码:
有问题的弹出窗口已连接到OnConnectivityChangedListener.onConnectivityChanged()(弹出窗口在通过runnable连接丢失后10秒显示)
final Runnable showOfflineWarning = new Runnable() {
@Override
public void run() {
if (!BasicNetworkManager.isConnected()) {
showErrorDialog("Warning");
sLastOfflineWarningTime.set(0L);
}
}
};
myHandler.postDelayed(showOfflineWarning, 10000);
showErrorDialog确实启动了一个自定义Activity,它构建了自己的对话框UI。我希望由于应用程序在后台,这个对话框将在后台创建,但是,由于配置或Motorala OS查询,它可能会出现在前台。
设备:
型号:Moto Z Droid
操作系统:7.0(牛轧糖)