如何使Android应用程序始终在后台运行?

Man*_*uel 38 android

我正在使用Android设备.当我打开设置>应用>运行,对一个选项左上屏幕上看到:(1)运行的进程(2)缓存的后台进程.我想要运行的应用程序(24×7)不幸地列在(2)缓存的后台进程中,我希望它/它们列在(1)运行进程下(如果有可能) ).可以吗?或者简而言之,如何使Android应用程序始终在后台运行?

我希望我转达了这个问题:-)

sem*_*mir 55

您必须在Application类中启动服务才能始终运行它.如果您这样做,您的服务将始终运行.即使用户从任务管理器终止您的应用程序或强制停止您的应用程序,它也会再次开始运行.

创建服务:

public class YourService extends Service {

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // do your jobs here
        return super.onStartCommand(intent, flags, startId);
    }
}
Run Code Online (Sandbox Code Playgroud)

创建一个Application类并启动您的服务:

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        startService(new Intent(this, YourService.class));
    }
}
Run Code Online (Sandbox Code Playgroud)

不要忘记在AndroidManifest.xml的"application"标签中添加它

android:name=".App"
Run Code Online (Sandbox Code Playgroud)

UPDATE

在Android Oreo之后,Google引入了一些背景限制.因此,上述解决方案可能无法正常工作.当用户从任务管理器中杀死您的应用时,Android系统也会终止您的服务.如果您想运行一个在后台始终存在的服务.您必须运行前台服务并显示正在进行的通知.因此,请按以下方式编辑您的服务.

<service android:name=".YourService"/>
Run Code Online (Sandbox Code Playgroud)

  • 右键单击项目浏览器中的**app**(在Android Studio的左侧).然后,**新>>服务>>服务** (4认同)
  • Android studio是一个IDE(集成开发环境).您需要使用它(或Eclipse IDE)来编写Android应用程序.它是一个在桌面(Windows,Mac或Linux)上运行的程序."App"是项目文件中的一个文件夹,可以在左侧的Project Explorer中找到.我清理了一下吗? (3认同)
  • 您的代码使我朝着正确的方向发展-最终找到了解决方案。**谢了哥们!!** @ sembozdemir ** (3认同)
  • @sembozdemir我已经尝试过Android 8.1的解决方案.这是行不通的.也就是说,一旦我从"设置"应用程序"强制停止"我的应用程序,该应用程序就不会自动重启,我仍然需要手动重启应用程序.您使用哪个版本的Android测试过您的解决方案?我的理解是,一旦应用程序停止,它的服务也应该停止,否则这是一个设计缺陷. (2认同)