Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid widget with multiple buttons
    primarykey
    data
    text
    <p>i have developed a android widget with mutiple buttons on it. it works fine and i add first time. but when i reboot the device buttons do not fire. here it is what i do</p> <p>here is xml config</p> <pre><code>&lt;receiver android:name="com.islem.widget.MyWidgetMain" android:label="@string/app_name"&gt; &lt;intent-filter&gt; &lt;action android:name="android.appwidget.action.APPWIDGET_UPDATE" /&gt; &lt;!-- Broadcast Receiver that will also process our self created action --&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER1"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER2"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER3"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER4"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER5"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER6"/&gt; &lt;action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RELOAD_ALARM"/&gt; &lt;/intent-filter&gt; &lt;meta-data android:name="android.appwidget.provider" android:resource="@xml/k_widget_provider" /&gt; </code></pre> <p></p> <p>here is the onUpdate method</p> <pre><code> @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { for (int appWidgetId : appWidgetIds) { RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.kalan_widget_main); Intent refreshButtonIntent = new Intent(context, KalanWidgetMain.class); refreshButtonIntent.setAction(ACTION_WIDGET_RECEIVER1); Intent voiceTabIntent = new Intent(context, KalanWidgetMain.class); voiceTabIntent.setAction(ACTION_WIDGET_RECEIVER2); Intent dataTabIntent = new Intent(context, KalanWidgetMain.class); dataTabIntent.setAction(ACTION_WIDGET_RECEIVER3); Intent smsTabIntent = new Intent(context, KalanWidgetMain.class); smsTabIntent.setAction(ACTION_WIDGET_RECEIVER4); Intent prevButtonIntent = new Intent(context, KalanWidgetMain.class); prevButtonIntent.setAction(ACTION_WIDGET_RECEIVER5); Intent nextButtonIntent = new Intent(context, KalanWidgetMain.class); nextButtonIntent.setAction(ACTION_WIDGET_RECEIVER6); refreshButtonIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); voiceTabIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); dataTabIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); smsTabIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); prevButtonIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); nextButtonIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); PendingIntent refreshButtonPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, refreshButtonIntent, PendingIntent.FLAG_CANCEL_CURRENT); PendingIntent voiceTabPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, voiceTabIntent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent dataTabPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, dataTabIntent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent smsTabPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, smsTabIntent, PendingIntent.FLAG_CANCEL_CURRENT); PendingIntent prevButtonPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, prevButtonIntent, 0); PendingIntent nextButtonPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, nextButtonIntent, 0); remoteViews.setOnClickPendingIntent(R.id.kalanRefresh, refreshButtonPendingIntent); remoteViews.setOnClickPendingIntent(R.id.kalanTabVoiceBg, voiceTabPendingIntent); remoteViews.setOnClickPendingIntent(R.id.kalanTabDataBg, dataTabPendingIntent); remoteViews.setOnClickPendingIntent(R.id.kalanTabSMSBg, smsTabPendingIntent); remoteViews.setOnClickPendingIntent(R.id.kalanPrev, prevButtonPendingIntent); remoteViews.setOnClickPendingIntent(R.id.kalanNext, nextButtonPendingIntent); appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); KalanUpdater.registerWidget(context, appWidgetManager, appWidgetId); appWidgetManager.updateAppWidget(appWidgetId, remoteViews); } } </code></pre> <p>here is the onReceive method</p> <pre><code> @Override public void onReceive(Context context, Intent intent) { System.out.println("on onReceive"); Toast.makeText(context, "onReceive", Toast.LENGTH_SHORT).show(); // v1.5 fix that doesn't call onDelete Action final String action = intent.getAction(); if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) { this.onDeleted(context, new int[] { appWidgetId }); } } else { if (intent.getAction().equals(ACTION_WIDGET_RECEIVER1) || intent.getAction().equals(ACTION_WIDGET_RECEIVER2) || intent.getAction().equals(ACTION_WIDGET_RECEIVER3) || intent.getAction().equals(ACTION_WIDGET_RECEIVER4) || intent.getAction().equals(ACTION_WIDGET_RECEIVER5) || intent.getAction().equals(ACTION_WIDGET_RECEIVER6) || intent.getAction().equals(ACTION_WIDGET_RELOAD_ALARM) ) { int appWidgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); System.out.println("appWidgetId:" + appWidgetId + ", action:" + action); } super.onReceive(context, intent); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload