红米手机安卓后台服务被杀

Posted

技术标签:

【中文标题】红米手机安卓后台服务被杀【英文标题】:redmi phone android background service getting killed 【发布时间】:2015-03-18 14:26:43 【问题描述】:

我有一个可以启动后台服务的应用程序,它可以在除 Redmi 1s 手机之外的所有 android 手机和模拟器上正常运行。服务正常启动。但是当用户从最近的应用程序界面中清除应用程序时,与我的应用程序相关的所有服务都会被杀死。我的应用程序需要运行此后台服务。我能做些什么来防止这个问题吗?

【问题讨论】:

【参考方案1】:

试试这个:当你在任务管理器中时(长按主页键),将你想要防止被杀掉的应用程序往下拉,并锁定到内存中。您会在应用图标的一角看到一个小锁图标。

【讨论】:

这是我必须告诉我的用户的事情。有什么,我(作为应用程序开发人员)可以做的吗?【参考方案2】:

我知道我回答这个问题迟了,但无论如何如果有人仍在寻找这种情况下的解决方案,这个答案可能对他们有帮助。 我不太确定这个特定的设备,因为这个设备对我来说不可用,但就小米设备而言,我使用自动启动权限来重新启动服务,一旦它被任务管理器杀死。

您可以要求您的用户手动允许自动启动权限,只要您的应用允许此权限,它就会在您每次从任务管理器中删除它时重新启动您的服务。

向用户请求自动启动权限的步骤:

    如果设备制造商是小米,则将用户重定向到自动启动设置页面。

    if ("xiaomi".equalsIgnoreCase(android.os.Build.MANUFACTURER)) 
        Intent autostartIntent = new Intent();
        autostartIntent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
        startActivity(autostartIntent);
    
    
    您的用户必须在此处为您的应用开启自动启动功能。

此外,您需要从服务的 onDestroy() 发送广播,该广播将在每次被销毁时重新启动您的服务。

服务类的onDestroy()

@Override
public void onDestroy() 
    super.onDestroy();
    Log.i("EXIT", "ondestroy!");
    Intent broadcastIntent = new Intent("ac.in.ActivityRecognition.RestartSensor");
    sendBroadcast(broadcastIntent);

在您的清单文件中定义接收方

<receiver
    android:name=".recievers.SensorRestarterBroadcastReceiver"
    android:enabled="true"
    android:exported="true"
    android:label="RestartServiceWhenStopped">
    <intent-filter>
        <action android:name="ac.in.ActivityRecognition.RestartSensor" />
    </intent-filter>
</receiver>

CustomBroadcastReceiver.java

public class SensorRestarterBroadcastReceiver extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
        Log.i(SensorRestarterBroadcastReceiver.class.getSimpleName(), "Service Stopped!");
        context.startService(new Intent(context, MyService.class)); // Restart your service here
    

完成上述步骤后,即使您的应用从任务管理器中被终止,您也可以重新启动服务。

【讨论】:

这非常有用。还有here,查看权限检查方法:

以上是关于红米手机安卓后台服务被杀的主要内容,如果未能解决你的问题,请参考以下文章

小米手机如何防止微信后台被杀

安卓13优化更大,或摆脱杀后台问题

Android APP在后台被杀问题修复

oppo-coloros、vivo-funtouch os、小米-MIUI os等定制操作系统新推出的设备,如何保护后台服务/报警被杀?

android中的后台服务没有运行像oppo,vivo等设备

应用程序被杀后,广播接收器未调用服务