我有一个问题,当我运行我的Android应用程序,其中有广播接收器为WiFi.它在不同版本的Android OS上表现不同(如4.1.1和4.2.2).
当我在4.1.1上运行时,它工作完美就像广播接收器在Wifi状态改变时接收广播.(在断开wifi广播接收时,我已经计算了wifi连接的总时间并将其存储在数据库中).
但是当我在4.2.2上运行它时,广播接收器在Wifi断开连接时调用两次,因此此时值(即wifi连接的时间)在数据库中存储两次.
所以我需要知道为什么会这样?为什么在断开连接时广播接收器呼叫两次?我需要代码使其适用于所有Android版本.
这是我的代码.
Android Menifest文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.evowifiservice"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8" android:maxSdkVersion="17" android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.evowifiservice.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> …
Run Code Online (Sandbox Code Playgroud)