Android 安卓系统在Nexus5上最小化我的应用程序进程时正在扼杀它

Android 安卓系统在Nexus5上最小化我的应用程序进程时正在扼杀它,android,android-lifecycle,Android,Android Lifecycle,我创建了一个简单的应用程序,它具有在后台显示新闻和播放音乐的功能。问题是:所有测试设备的应用程序都可以正常工作,但在带有Android 5.0.1系统的Nexus 5上,当我的应用程序进程被最小化(按下主页按钮)时,它会被杀死,音乐会被关闭,当我取消动画化时,应用程序会重新启动。我可以通过以下步骤几乎100%地复制它: 1) 在我的应用程序中按home。2) 打开Gmail客户端。3) 通过单击电子邮件中的链接打开web浏览器,浏览一些繁重的网站。 我的应用程序不使用大堆标志或一些重图片。我建议

我创建了一个简单的应用程序,它具有在后台显示新闻和播放音乐的功能。问题是:所有测试设备的应用程序都可以正常工作,但在带有Android 5.0.1系统的Nexus 5上,当我的应用程序进程被最小化(按下主页按钮)时,它会被杀死,音乐会被关闭,当我取消动画化时,应用程序会重新启动。我可以通过以下步骤几乎100%地复制它: 1) 在我的应用程序中按home。2) 打开Gmail客户端。3) 通过单击电子邮件中的链接打开web浏览器,浏览一些繁重的网站。 我的应用程序不使用大堆标志或一些重图片。我建议这样做是因为手机内存已经用完了。我已经安装了来自市场的第一个应用程序,请求“内存使用”。在关闭我的应用程序后,它将在Nexus 5上显示下一步:

总容量:1856Mb,可用容量:429Mb,输入容量:156Mb,输出容量:842Mb,总容量:219Mb, 低:没有

我并没有低估这个值(429+156+842+219=1646,而不是1856),但看起来内存足够了

我不明白为什么手机上的系统内存为2Gb,只有很少的运行应用程序会杀死几分钟前使用过的小应用程序,而且——在后台播放音乐,但在旧设备上一切正常,或者可能是我做错了什么

UPD。清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxxxxx">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

    <application
        android:allowBackup="true"
        android:name=".xxxxxx"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

      <meta-data android:name="com.google.android.gms.version"
                 android:value="@integer/google_play_services_version" />
      <meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="xxxxxx" />

        <activity
            android:name=".activity.LauncherActivity"
            android:theme="@style/Theme.Launcher"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".activity.MainActivity"
            android:screenOrientation="portrait" />

    </application>

</manifest>

如果您的应用程序正在播放音乐,我假设您正在播放音乐并在服务上执行操作,请让此服务获得前台优先级,例如

这样,除非世界末日,整个系统崩溃,否则系统不会停止您的服务:)


不过有一点需要注意的是,拥有前台服务需要一个持久的通知,例如,您在其中有一个关闭此服务的按钮。

请发布manifest.xml文件。可能相关:和