global-在BroadCast receiver的Onreceive方法中如何获得全局数据?

问题描述

在BroadCast receiver的Onreceive方法中如何获得全局数据?
我想在 BroadCast receiver 类中获取一个全局数据。
我用的下面的代码,进入BroadCast receiver 类

public class Global extends Application{String mobileNumber;public String getMobileNumber() {    return mobileNumber;}public void setMobileNumber(String mobileNumber) {    this.mobileNumber = mobileNumber;}

Receiver 类

public class TextMessageReceiver extends BroadcastReceiver{Global global;Context context;int count;String number;public void onReceive(Context context Intent intent){      global=(Global)context;      number = global.getMobileNumber();    Bundle bundle=intent.getExtras();    Object[] messages=(Object[])bundle.get(""pdus"");    SmsMessage[] sms=new SmsMessage[messages.length];    for(int n=0;n<messages.length;n++){        sms[n]=SmsMessage.createFromPdu((byte[]) messages[n]);    }    for(SmsMessage msg:sms){        if(msg.getOriginatingAddress().endsWith(number))        {            SMS.updateMessageBox(msg.getOriginatingAddress()msg.getMessageBody()context);        /*SMS.updateMessageBox(""nFrom: ""+msg.getOriginatingAddress()+""n""+Message: ""+msg.getMessageBody()+""n"");*/            /*((SMS) context).delete();*/        abortBroadcast();        }    }}

我需要从 getter setter 获取电话号码,如何获取?

解决方案

把代码 global=(Global)context; 改成 global=(Global)context.getApplication();
现在访问 Global Class 的字段。

时间: 2024-09-09 04:08:31

global-在BroadCast receiver的Onreceive方法中如何获得全局数据?的相关文章

线程-可以在broadcast的onreceive()方法中开一个service吗

问题描述 可以在broadcast的onreceive()方法中开一个service吗 可以在broadcast的onreceive()方法中开一个Service吗? 可以在broadcast的onreceive()方法中开一个Thread吗? 为什么呢? 解决方案 当然可以开启一个服务,服务是四大组件之一,就像可以新建一个activity,广播中可以新开线程,但是不建议这么做,广播生命周期短,线程如果做比较耗时的工作,而广播死掉了,那么线程没做完事也跟着死掉了. 解决方案二: 都可以的,以下是

activity-从onReceive 方法中设置新的报警器

问题描述 从onReceive 方法中设置新的报警器 在数据库(按时间排序)中有一个 reminders 的集合,当程序开启时我就调用 setAlarm.我需要在 onReceive 方法中添加代码来实现下面的任务: 1.从数据库中获取第一个提醒. 2.获得相关提醒的延迟. 3.设置一个新的报警获得下一个提醒. 我创建的 BroadcastReceiver 类: public class AlarmReceiver extends BroadcastReceiver{ private stati

android-Android中怎么把一个方法中的值传递到另一个方法中

问题描述 Android中怎么把一个方法中的值传递到另一个方法中 如下 public final Handler viewHandler = new Handler() {...........................};假设这里面有一个值要传递到 public void initViews() { .'''''''''''}:这里面 请大神指教 解决方案 为你想传入的那个方法添加传入数据类型的参数,然后在后一个方法中处理传入的数据,调用此方法的时候就可以传值了 public void

Android开发应用中Broadcast Receiver组件详解

BroadcastReceiver(广播接收器)是Android中的四大组件之一.下面就具体介绍一下Broadcast Receiver组件的用法. 下面是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件.很多广播是源自于系统代码的──比如,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态. ②应用程序可以拥有任意数

broadcast-有关在android代码中调用adb命令发送通知,没有回调onReceive方法问题

问题描述 有关在android代码中调用adb命令发送通知,没有回调onReceive方法问题 大神们,非常谦虚的请教下问题,是这样,我在终端输入adb shell am broadcast -a testBroadcastReceiver --es packageName "you packageName",可以回调onReceive方法,但是当我把该命令写在代码中,同样执行同样的命令,只是用代码实现,就不会调用onReceive,请帮忙解决下~ 解决方案 http://blog.c

Android开发四大组件Activity/Service/Broadcast Receiver/Content Provider详解

Android开发的四大组件一.Activity详解二.Service详解三.Broadcast Receiver详解四.Content Provider详解外加一个重要组件 intent的详解. 一.Activity详解 Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()-->onStart()-->onResume() 当另一个Activity启动时:第一个Activity onPause()-->第二个Activity  

Android简明开发教程二十:Broadcast Receiver短信触发示例

Android 中BroadCast Receiver可以用来侦听广播事件.在使用Broadcast 之前,必须使用代码或是在AndroidManifest.xml 进行注册. 下面的例子实现使用短信来触发AndroidGraphics2DTutorial中的示例.短信格式为:@demo:xxxx ,xxxx为 示例名称,比如 , 启动Colors示例, 则向手机发送: @demo:Colors . 手机在收到短信后,先检测短信格式是否符合 @demo:xxxx, 若符合, 这启动对应的示例.

关闭 android 程序毁坏broadcast receiver

问题描述 关闭 android 程序毁坏broadcast receiver 在 main activity 的 onCreate 方法中,我注册了 broadcastReciver.但是当我关闭程序时有下面的错误: @429d47e0 that was originally registered here. Are you missing a call to unregisterReceiver()? 07-10 23:40:48.161: E/ActivityThread(20989): a

contentprovider-点击返回按钮时 broadcast receiver 停止

问题描述 点击返回按钮时 broadcast receiver 停止 我创建了一个android sms 应用程序.我使用下面的代码来发送sms. public void sendSms(final String phoneNumber final String message){ String SENT = ""SMS_SENT""; String DELIVERED = ""SMS_DELIVERED""; Pending