2012-08-13 89 views
2

我有一个通过Intent.ACTION_BATTERY_CHANGED获得电池更新服务:Android的广播接收器,当应用从Play商店安装不工作

batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
batteryReceiver = new BatteryReceiver(); 

和接收器:

public void onReceive(Context context, Intent intent) { 

    String action = intent.getAction(); 
    if(action.equals(Intent.ACTION_POWER_CONNECTED)) { 
     onBattery = false; 
     Log.w("battery","on power"); 
    } 
    else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) { 
     Log.w("battery","on battery"); 
     onBattery = true; 
    } 
} 

这个作品完全一样预计通过USB调试安装应用程序时。在我将其发布到Play商店并从那里进行全新安装之后,它不起作用。其他接收器也不适用于应用程序。应用程序的其余部分似乎工作正常,只是没有广播接收器正在工作。什么可能导致这种情况发生?

这是android 2.2,它是一个已经在商店中的应用程序的更新,接收器在更新之前也正常工作。

回答

2

如果您使用的是Android 3.1+,并且您没有手动运行其中一个组件(例如,从启动器启动一个活动),则您的任何清单注册BroadcastReceiver都不会起作用。

+0

这是在Android 2.2上,它是一个现有的应用程序的更新,所以它已经手动启动一次。这些接收器也没有在清单中注册,而是通过代码中的IntentFilter进行设置。接收器在此更新之前工作...(当然,通过USB调试正常工作)。 – user1596144 2012-08-13 19:34:36

+0

@ user1596144:您如何知道您的服务正在运行? – CommonsWare 2012-08-13 19:44:16

+0

我使用startForeground,通知显示在左上角。该应用程序的所有其他方面工作正常。 – user1596144 2012-08-13 20:37:49

相关问题