为什么我的小部件在屏幕打开时没有注意到?

时间:2015-01-19 02:51:56

标签: android event-handling android-widget

我开发了这样的Android Widget:

    <receiver android:name=".MyWidget" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="android.intent.action.ACTION_SCREEN_ON" />
            <action android:name="android.intent.action.ACTION_SCREEN_OFF" />
        </intent-filter>

在我的小部件中

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        playNotification(context, true);
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
        playNotification(context, true);
    }
}

 static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                            int appWidgetId) {
[...]

updateAppWidget完美运行。如果屏幕已打开,也未关闭,则通知不会起作用。 这有什么问题?

1 个答案:

答案 0 :(得分:0)

这是因为

Intent.ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF" // not ACTION_SCREEN_OFF
Intent.ACTION_SCREEN_ON = "android.intent.action.SCREEN_ON" // not ACTION_SCREEN_ON

当您在清单中修复intent过滤器时,一切都应该正常工作。