android应用程序可以只有广播接收器和服务而没有活动吗

2023-12-06

Android应用程序可以只有广播接收器和服务而没有活动吗? 如果这是可能的,我如何调用广播接收器? Android 系统自动调用broadcsat 接收器?

广播接收者代码

  public class CheckReceiver extends BroadcastReceiver {

        public Context con;

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub

            Toast.makeText(context, "Received", Toast.LENGTH_LONG).show();
            // add PhoneStateListener
            PhoneCallListener phoneListener = new PhoneCallListener();
            TelephonyManager telephonyManager = (TelephonyManager) context
                    .getSystemService(Context.TELEPHONY_SERVICE);
            telephonyManager.listen(phoneListener,
                    PhoneStateListener.LISTEN_CALL_STATE);

            con = context;
                                }

        class PhoneCallListener extends PhoneStateListener {

            private boolean isPhoneCalling = false;

            String LOG_TAG = "LOGGING 123";

            @Override
            public void onCallStateChanged(int state, String incomingNumber) {

                if (TelephonyManager.CALL_STATE_RINGING == state) {
                    // phone ringing
                    Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
                }

                if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
                    // active
                    Log.i(LOG_TAG, "OFFHOOK");

                    isPhoneCalling = true;
                }

                if (TelephonyManager.CALL_STATE_IDLE == state) {
                    // run when class initial and phone call ended, need detect flag
                    // from CALL_STATE_OFFHOOK
                    Log.i(LOG_TAG, "IDLE");
                    if (isPhoneCalling) {
                        Log.i(LOG_TAG, "restart app");
                        Intent start = new Intent(con, CheckService.class);
                        con.startService(start);
                        isPhoneCalling = false;
                    }

                }
            }
        }
    }

服务代码是

public class CheckService extends Service{

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

    @Override
    public void onStart(Intent intent, int startId) {
        // TODO Auto-generated method stub
        super.onStart(intent, startId);
        Intent dialogIntent = new Intent(CheckService.this,SmartDialog.class);
        dialogIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(dialogIntent);


        //Toast.makeText(CheckService.this, "Serive", Toast.LENGTH_LONG).show();
    }

}

Android 清单文件是

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

    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

       <receiver android:name="CheckReceiver"></receiver>
        <service android:name="CheckService"></service>
        <activity android:name="SmartDialog" android:theme="@android:style/Theme.Dialog"></activity>
    </application>

当我尝试运行此代码时,接收器未启动。任何帮助都会非常有帮助


从 Honeycomb 开始,BroadcastReceiver 以停止状态安装,并且在应用程序实际运行之前不会触发,即您需要一个活动至少运行一次。这篇 Commonsware 博客文章对此进行了深入解释:

广播回归已确认

安卓3.1

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

android应用程序可以只有广播接收器和服务而没有活动吗 的相关文章

  • 需要对某些片段禁用 CollapsingToolbarLayout 的展开

    我有一个AppCompatActivity控制替换许多片段 这是我的布局 活动 main xml
  • 在 Android 中使用 awt

    我有一个绘制图表的 Java Swing 应用程序 它使用 Graphics2D 调用和 awt 对象 例如 Rectangle 等 在某些时候我可能想将其移植到 Android 上 我知道我无法在 Android 上使用 Graphics
  • 升级到 Proguard 4.8 后无法导出应用程序

    我刚刚将我的 Android SDK ADT 和 Proguard 升级到最新最好的版本 我的项目在调试模式下编译并运行良好 但是当我尝试导出它的签名版本 APK 时 我收到来自导出向导的错误Eclipse 控制台上没有任何错误日志消息 如
  • 如何从Slog中查看日志

    如何查看 Slog API 生成的日志 是否有任何选项可以查看系统缓冲区中的日志 我的意思是查看我们使用的无线电缓冲区的日志 adb logcat b 无线电 而这个日志是由Android的Log类生成的 Slog API 的输出在哪里 怎
  • 将项目添加到 android 框架的设置中

    我正在 android 框架中工作 我想向 android 操作系统中的现有设置添加一个项目 您能告诉我如何执行此操作吗 首先阅读有关偏好活动 http developer android com reference android pre
  • 如何连接到Google Play服务并加载排行榜

    我想将我的游戏与 Google Play 服务连接 我已阅读有关 Android 开发人员的文档 并尝试遵循输入数字示例 但仍然无法加载排行榜 我有导入baseGameUtils 但我使用andengine 所以我没有使用来自谷歌的exte
  • 构建应用程序时出现 BufferOverflowException

    每次我想运行我的 Android 应用程序时 我都会收到错误 2013 11 02 13 05 36 Dex Loader Unable to execute dex java nio BufferOverflowException Che
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 添加 play-services-maps 依赖项自动添加 glEsVersion 2.0 要求

    我想融入Google Play Services Maps module 由于地图清单声明
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • onStart() 到底做了什么? - 安卓[重复]

    这个问题在这里已经有答案了 一段时间以来 我一直想知道 onStart 函数在 android 生命周期中的确切作用 网上的大多数资源只是说 它在您的活动在屏幕上可见之前被调用 但到目前为止我所做的应用程序我从未使用过onStart 我在
  • 用户通过 firebase 动态链接安装应用程序并在应用程序抽屉上打开应用程序后,如何获得深层链接?

    我正在使用 firebase 动态链接邀请朋友使用我的应用程序 一切都很好 单击邀请链接会将我带到 Playstore 当我安装应用程序并等待其完成时 Playstore 会向我显示 继续 按钮 当我单击此按钮时 应用程序将打开 并且我会收
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction
  • 如何从另一个活动更新 Recyclerview 数据

    我有两个活动 MainActivity 和 Addlogactivity 我正在更新 Addlogactivity 中的数据 该数据应显示在 mainactivity recyclerview 中 数据未在数据库中更新 MianActivi
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie
  • android.view.WindowLeaked - 使用对话框和新意图时

    我已经尝试了 stackoverflow 上提供的所有可能的解决方案 但我仍然在 logcat 中遇到此错误 活动 com xyz MainActivity 泄露了最初在此处添加的窗口 com android internal policy

随机推荐

  • 正则表达式用逗号替换客户评论中的一些点

    我需要写一个正则表达式来替换 with 在一些患者对药物的评论中 他们应该在提到副作用后使用逗号 但其中一些使用了点 例如 text the drug side effects are night mare nausea night swe
  • 透明地记录下载的最佳方式?

    我有一个个人项目 已经上线一段时间了 我一直通过这样做来记录下载量 当用户单击下载链接时 它会点击一个 PHP 脚本 该脚本将一些信息写入表中 写入数据后 脚本将返回实际文件的路径 然后 用户可以将文件保存到硬盘上 就像下载任何其他文件一样
  • ListViewAnimations 库导致顶级异常

    我正在尝试将此库嵌入到我的 Android 项目中 正如他们的 wiki 中所说 我做了很少的事情 添加了 gradle 编译行compile com nhaarman listviewanimations library 2 6 0 然后
  • 新的 iOS 应用程序与 Facebook Graph api v2.0 作斗争

    我是应用程序开发新手 我一直在构建一个社交 iOS 应用程序 需要发送 Facebook 邀请才能加入该应用程序 昨天发布的 Facebook Graph API 2 0 似乎对如何邀请尚未参与游戏的人提出了更严格的要求 我正在尝试激活 m
  • 如何使设备顶部面板(状态栏)与flutter中的AppBar具有相同的背景颜色?

    如何使设备顶部面板 状态栏 与flutter中的AppBar具有相同的背景颜色 设备顶部面板的颜色始终比 AppBar 背景颜色深 多谢 在 iOS 上 这已经是事实了 在 Android 上 添加以下内容onCreate in MainA
  • Apache RewriteRule 用于删除任何域名上的端口

    我有一台具有一个 IP 地址的虚拟服务器 为几个不同的站点提供服务 其中之一带有 SSL 证书 我需要在第二个域上添加 SSL 证书供我自己私人使用 由于我只有一个 IP 地址 所以我将其添加到端口 8080 上 这很好用 我现在的问题是
  • 为什么flink容器vcore大小始终为1

    我在yarn上运行flink 更准确地说是在AWS EMRyarn集群中 我阅读了flink文档和源代码 默认情况下 对于每个任务管理器容器 当从yarn请求资源时 flink将请求每个任务管理器的插槽数量作为vcore的数量 而且我也从源
  • 如何在R中将二进制小数转换为十进制小数?

    我需要编写一个函数 将二进制小数转换为 R 中的十进制小数 f 0 001 0 125 我做了什么 我搜索了R包中的相关函数 DescTools BinToDec 0 001 NA DescTools BinToDec 0 001 NA b
  • React Ionic 5:如何将对象从App组件传递到Tab组件

    我使用 Ionic 5 选项卡模板创建了一个 Ionic React 应用程序 我想将一个对象从应用程序组件传递到选项卡组件 有什么办法可以做到吗 Tab1 和 Tab2 是我的选项卡组件 Note 我希望这个对象在两个选项卡组件中使用两种
  • 扫描直到新行

    我想读取输入的所有文本 直到输入新行字符 这是我的代码 int i 0 char ch MAX printf Enter the text n while true scanf c ch i if ch i n break i 但当我尝试执
  • Clang 3.7.0 抱怨类不是字面意思,因为它不是聚合并且没有 constexpr 构造函数

    以下代码在 GCC 4 9 3 和 VC 19 00 23506 中编译良好 但在 Clang 3 7 0 中给出这些错误 错误 constexpr 函数的返回类型 Foo 不是文字类型 注意 Foo 不是字面意思 因为它不是聚合并且没有
  • C++ 中的向量初始化

    我在代码中使用向量 导致错误的行如下 vector
  • 如何使用 Vbscript 重写和写入文本文件

    我使用以下 VBscript 在 commonapplicationdatafolder 中创建了一个文本文件 list txt 我正在显示一些 通过写入文本文件来获取变量 strlist 的值 Const Value H23 Const
  • 使用 NSXMLParser initWithStream:未收到解析器委托方法

    我正在解决的基本问题是使用NSStream用于解析传入的增量 XML 数据的类 数据从来都不是完整的 XML 文档 但我希望根据套接字可以读取的数据量以增量块的形式接收和处理它 查看文档NSXMLParser 看起来像initWithStr
  • 如何使用 24 块色卡估计和应用色彩校正矩阵?

    我有一个 24 块色卡 我正在尝试使用所述色卡估计捕获图像的颜色校正矩阵 我已经手动估计了CCM使用least squares方法 但它没有产生理想的结果 有些图像在应用后会出现奇怪的阴影CCM 我仔细检查了我的代码 但没有发现任何问题 我
  • 将 grep 结果打印到文件和终端

    我正在尝试将 grep 结果显示到终端以及文件中 我提出的解决方案是只运行两次 但这显然会产生效率问题 grep n SEARCH TERM i grep n SEARCH TERM i gt gt file txt 是否有一个标签允许它仅
  • alert() 返回与 console.log() 不同吗?

    我应该使用alert 进行调试吗 或者是否有时间使用alert 与console log 我看到alert 和console log 可以返回不同的结果 我认为它们是类似的功能 但只是在不同的地方返回 背景故事 我的老板喜欢在开发过程中看到
  • 是否可以在Java中为数字框类型编写通用的+1方法?

    这不是家庭作业 Part 1 是否可以编写一个通用方法 如下所示
  • 搜索非 ASCII 字符

    我有一个文件 a out 其中包含多行 每一行只有一个字符 要么是 unicode 字符U 2013或小写字母a z 对 a out 执行文件命令会得到结果 UTF 8 Unicode 文本 locale 命令报告 LANG en US U
  • android应用程序可以只有广播接收器和服务而没有活动吗

    Android应用程序可以只有广播接收器和服务而没有活动吗 如果这是可能的 我如何调用广播接收器 Android 系统自动调用broadcsat 接收器 广播接收者代码 public class CheckReceiver extends