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



我开发了这样一个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) {
[...]

更新AppWidget完美运行。相反,如果屏幕已打开或关闭,通知都不起作用。这是怎么回事?

这是因为

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

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

相关内容

  • 没有找到相关文章

最新更新