android网络改变广播接收器和获取网络类型

时间:2013-07-28 09:05:32

标签: android broadcastreceiver telephony

这是我在我的清单文件中注册的接收器

     <receiver android:name=".Network_change" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
  </intent-filter>
    </receiver>

现在我想要做的是每当网络类型改变如GSM到UMTS或EDGE到UMTS等我希望得到这种类型我已经做的是当我的应用程序在previous_network_type变量中启动时保存网络类型在接收器

 current_network_type=telephony.getNetworkType();

完成我的工作后

      previous_network_type=current_network_type;

并且这些变量在服务中是静态的,并且该服务正在运行,因此问题是两个变量中的M得到0,其中一个时间是不正确的任何帮助? coz 0未知

1 个答案:

答案 0 :(得分:1)

对于你所说的我理解你并没有考虑到每次触发接收器时它都会创建一个新的实例,它在工作后被销毁。即使使用静态变量,您也不会有持久值。

对我有用的一个解决方案是使用SharedPreferences。请注意,在API11 +上,您应该使用标志MODE_MULTI_PROCESS,如下所示:

auto&  functorRef  = *objp;
functorRef(x, y, z);

希望它有所帮助...