我的Android应用程序如何从后台启动自己的另一个应用程序?

时间:2017-06-14 21:51:34

标签: android

背景:在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(牛轧糖)

0 个答案:

没有答案