前提・実現したいこと
widgetを作成しています。
AndroidStudioで新規に生成したwidgetを少し変更し、クリックした際の処理を
記述したのですが、クリックしてもonReadが走りません、どこかに問題がありますでしょうか?
よろしくおねがいします。
該当のソースコード
Manifest
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.widgetsample"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <receiver android:name=".NewAppWidget"> 13 <intent-filter> 14 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 15 <action android:name="CLICK_WIDGET"/> //ここ追加 16 </intent-filter> 17 18 <meta-data 19 android:name="android.appwidget.provider" 20 android:resource="@xml/new_app_widget_info" /> 21 </receiver> 22 </application> 23 24</manifest>
NewAppWidget
1class NewAppWidget : AppWidgetProvider() { 2 override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { 3 // There may be multiple widgets active, so update all of them 4 for (appWidgetId in appWidgetIds) { 5 updateAppWidget(context, appWidgetManager, appWidgetId) 6 } 7 } 8 9 override fun onEnabled(context: Context) { 10 // Enter relevant functionality for when the first widget is created 11 } 12 13 override fun onDisabled(context: Context) { 14 // Enter relevant functionality for when the last widget is disabled 15 } 16 17 override fun onReceive(context: Context?, intent: Intent?) { 18 super.onReceive(context, intent) 19 // ここ追加 20 Log.i("ログ出力","onReceive") 21 } 22 23} 24 25internal fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int) { 26 val widgetText = context.getString(R.string.appwidget_text) 27 // Construct the RemoteViews object 28 val views = RemoteViews(context.packageName, R.layout.new_app_widget) 29 views.setTextViewText(R.id.appwidget_text, widgetText) 30 31 // この辺りも追加 32 val intent = Intent("CLICK_WIDGET") 33 val pIntent = PendingIntent.getBroadcast(context, appWidgetId, intent, 0) 34 views.setOnClickPendingIntent(R.id.appwidget_text,pIntent) 35 36 // Instruct the widget manager to update the widget 37 appWidgetManager.updateAppWidget(appWidgetId, views) 38}
試したこと
クリックしてもonReceiveは走らないのですが、widgetのサイズを変更すると走りました。
補足情報(FW/ツールのバージョンなど)
API 26
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/26 10:56