Android,如何让应用程序的任务不可关闭?只能通过任务终止来关闭

2024-01-12

我正在开发一个应用程序,该应用程序必须始终运行并且只能通过任务杀手或类似工具关闭。

我在清单中有:

android:persistent="true"

虽然按主页按钮时没有关闭,但我发现它时不时会关闭,我不希望这种情况发生。

我的用户想要,可以通过从自定义启动器杀死应用程序或使用任务杀手来关闭应用程序。

有什么建议么?提前致谢

P.D.:如何使用后退按钮退出应用程序,但不关闭它,我的意思是停止显示应用程序或其任何活动,但应用程序应继续在后台运行。

我编写了一项服务,但有些东西无法正常工作,我将其添加到清单中

<service android:name=".ONService"></service>

就在应用程序标记结束之前,这是 ONService.java:

package com.omninotifier.main;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;

public class ONService extends Service{

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}


@Override
public void onCreate() {
    // TODO Auto-generated method stub
    //super.onCreate();
}



@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    // TODO Auto-generated method stub
    //return super.onStartCommand(intent, flags, startId);

    return START_STICKY;
}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub

    NotificationManager manager = (NotificationManager)     
getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.ic_stat_alert,   
getResources().getString(R.string.ServiceDestroyed), System.currentTimeMillis());
    notification.flags = Notification.FLAG_AUTO_CANCEL;
    manager.notify(150, notification);

    super.onDestroy();
}

 }

我启动服务,在应用程序启动时执行此操作:

这是应用程序中的主要活动

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


   Intent serviceIntent = new Intent();
   serviceIntent.setAction(".ONService");
   startService(serviceIntent);

//............

}

我应该在服务标签中添加带有操作的意图过滤器才能正常工作吗?还是其他问题?

问题是无法启动服务。这是修复:

在清单中

<service android:name=".ONService">
<intent-filter android:priority="100">
    <action android:name=".ONService"/>
</intent-filter>
</service>

在调用服务的活动中:

Intent serviceIntent = new Intent(".ONService");


startService(serviceIntent);

我正在开发一个应用程序,该应用程序必须始终运行并且只能通过任务杀手或类似工具关闭。

这绝对不可能。 Android 可以而且最终会摆脱你的进程,以防止草率的开发人员尝试拥有“必须始终运行的应用程序”。

如果您的应用程序是前台用户体验的一部分(例如音乐播放器),您可以拥有一个调用的服务startForeground(),这降低了 Android 摆脱你的进程的可能性,只要有一个Notification在与您的应用程序关联的状态栏中。您的应用程序最终仍会终止其进程,尽管它往往需要更长的时间。

或者,您可以自定义构建 Android 操作系统,其中包含实现您的逻辑的 C 守护进程,并分发包含您的自定义 Android 的 ROM mod。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android,如何让应用程序的任务不可关闭?只能通过任务终止来关闭 的相关文章

随机推荐

  • 很棒的 RDF 可视化工具 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想找到一些很棒的工具或样式来可视化我的 RDF 数据 以便在观看者访问 RDF 数据时能给他们带来震撼 问题是我现在得到的可视化工具只能
  • 在 PHP 的 foreach 循环中对项目进行分组

    所以 我正在尝试做一种用户市场类型的东西 有一个数据库item names 基本描述了虚拟物品 然后还有一张表market 当用户列出他们的一件商品时 该商品就会在用户 用户市场上出售 我这里唯一的问题是我想按项目名称对其进行分组 在ite
  • Swift 2 无法删除可选绑定

    我是 Swift 新手 对可选 没有更多的想法 我尝试从 plist 中获取数据 创建模型并显示UITableView 表格数据显示完美 但显示为Optional 捆绑 我尝试过改变 到 但无法解开 您能指导我解决这个问题吗 这是我的代码和
  • 数组字段的elasticsearch范围过滤器

    我有一个包含整数数组的字段 例如 source prices 20001 30001 我想过滤结果 使价格至少包含以下值之间的列表之一 20002 30000 不会返回上述文档 因为没有值介于 20002 和 30000 之间 但 1000
  • 使用 Django 模型选择 COUNT 个?

    有谁知道是否有办法只选择与 Django 中的查询匹配的行数 我编写了一个搜索 将结果分为 40 组 但我还想显示结果总数 我可以像 len Model objects filter name icontains search 这样的东西
  • 骨干网将模型传递给路由器

    我正在使用 require js 和 Backbone 开发一个 android 应用程序 我必须通过 touchend 事件将从集合中获取的模型传递给路由器 我该怎么做 define jquery underscore backbone
  • Rails 3.1 Edge 是否破坏了 XmlMarkup::Builder?

    网上有很多例子 例如http techoctave com c7 posts 32 create an rss feed in rails http techoctave com c7 posts 32 create an rss feed
  • 在 Jinja2 中使用“if any():”?

    在 Jinja2 中 我正在寻找一种方法来检查变量列表中至少一个是否具有值 基本上在 python 中我会这样做 if any item genre item type item color 但是 在 Jinja 中以下内容无效 if an
  • 1 个输入分隔中的 3 个值(数字)。蟒蛇3

    我现在正在编写一个代码 其中一部分需要要求用户在一行中输入 3 个不同的数字 每个数字可以是任意位数 假设我要求用户输入 他输入 31 722 9191 数字之间需要有空格 您将如何分离这些数字并为每个数字分配一个变量 例如 31 是 A
  • 如何从给定的数据中找到距当前位置最近的地点。

    我有位置地址列表 从我当前的位置 我需要到达最近的地点并且必须在地图上显示它 我怎样才能到达距离我当前位置最近的地方 首先 我将获取当前位置的纬度和长度 然后我将如何到达最近的地方 Thanks 首先获取您当前的location纬度 Lon
  • gzip 编码与 JSON 兼容吗?

    我正在尝试缩小 AJAX 调用中发生的一些奇怪现象的范围 我的 PHP 脚本的开头是这样的 ob start ob gzhandler 与 HTML 配合得很好 但是使用 application json 数据执行此操作有任何问题吗 有人知
  • Linq2Sql Many:很多问题,你会怎么做?

    我知道很多 Linq2Sql 不支持很多 但我正在研究解决方法 我正在使用我的小 SO 克隆 我有一个包含问题的表和一个包含标签的表和一个链接表 QuestionTag 所以我在问题和标签之间有一个经典的多 多关系 为了在首页上显示问题列表
  • 使用 Elasticsearch 进行简单的 AND 查询

    我正在尝试对两个指定字段进行简单查询 而手册和谷歌被证明没有什么帮助 下面的例子应该很清楚我想要做什么 query and term name family name daniel name given name tyrone 作为一个额外
  • 根据属性中的值设置元素的样式

    我实际上首先问过这个问题 但这是我的错 因为我无法正确描述那里的事情 所以我无法得到答案 但现在我将描述这里的一切 实际上 我想要一个 javascript 函数 它可以找到具有完整文档中任何元素的特定前缀的类 让我们以 html 标记为例
  • Flex/Bison 错误:请求非结构或联合中的成员“str”

    我正在学习 flex bison 我编写了以下程序但出现错误 include
  • MATLAB - 创建变量的引用(句柄?)

    假设我有以下课程 classdef myClass lt handle properties A 1 end methods function obj myClass val obj A val end end end 假设我实例化这个类的
  • 如何对表单元素进行分组

    我得到了这个表格
  • 如何将 aar 库上传到 Nexus?

    我有一个 Android aar 库 正在与 Android 应用程序一起使用 它可以与直接包含在 Android 项目中的 aar 库一起正常工作 我想将此库移至我的内部 Nexus maven 存储库 以便其他开发人员也可以使用该库 如
  • WindowManager$BadTokenException

    我正在尝试将进度对话框放在 Click 事件上ListView如下面的代码中所述 但我收到错误 WindowManager BadTokenException Unable to add window token android app L
  • Android,如何让应用程序的任务不可关闭?只能通过任务终止来关闭

    我正在开发一个应用程序 该应用程序必须始终运行并且只能通过任务杀手或类似工具关闭 我在清单中有 android persistent true 虽然按主页按钮时没有关闭 但我发现它时不时会关闭 我不希望这种情况发生 我的用户想要 可以通过从