Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid widget update after x time
    primarykey
    data
    text
    <p>I just started to learn Android, I'm trying to write a widget which is updating the counter in every seconds, but somewhere it's missing something.I'm getting 1 on the screen. I'm using Android 4 emulator.</p> <pre><code>package com.ibluekey; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import com.ibluekey.R; import android.app.PendingIntent; import android.app.Service; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.SystemClock; import android.util.Log; import android.widget.RemoteViews; import android.widget.Toast; public class WidgetActivity extends AppWidgetProvider { public static WidgetActivity Widgetke = null; public static Context context; public static AppWidgetManager appWidgetManager; public static int appWidgetIds[]; private Handler mHandler = new Handler(); private static int count=0; @Override public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds ) { if (null == context) context = WidgetActivity.context; if (null == appWidgetManager) appWidgetManager = WidgetActivity.appWidgetManager; if (null == appWidgetIds) appWidgetIds = WidgetActivity.appWidgetIds; WidgetActivity.Widgetke = this; WidgetActivity.context = context; WidgetActivity.appWidgetManager = appWidgetManager; WidgetActivity.appWidgetIds = appWidgetIds; Log.d("PXR", "onUpdate"); final int N = appWidgetIds.length; for (int i=0; i&lt;N; i++) { int appWidgetId = appWidgetIds[i]; updateAppWidget(context,appWidgetManager, appWidgetId); } } static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { count++; /*Intent intent = new Intent(context, UpdateService.class); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); remoteViews.setOnClickPendingIntent(R.id.mainlayout, pendingIntent); remoteViews.setTextViewText(R.id.test_out, ""+count); // Tell the widget manager appWidgetManager.updateAppWidget(appWidgetId, remoteViews);*/ RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setTextViewText(R.id.test_out, count+""); appWidgetManager.updateAppWidget(appWidgetId, views); } public static class UpdateService extends Service { @Override public void onStart(Intent intent, int startId) { //WidgetActivity.Widgetke.onUpdate(context, appWidgetManager, appWidgetIds); //Toast.makeText(context, "Update Widget", Toast.LENGTH_SHORT).show(); WidgetActivity.Widgetke.mHandler.removeCallbacks(WidgetActivity.Widgetke.mUpdateTimeTask); WidgetActivity.Widgetke.mHandler.postDelayed(WidgetActivity.Widgetke.mUpdateTimeTask, 100); } @Override public IBinder onBind(Intent arg0) { return null; } } private Runnable mUpdateTimeTask = new Runnable() { public void run() { WidgetActivity.Widgetke.onUpdate(context, appWidgetManager, appWidgetIds); WidgetActivity.Widgetke.mHandler.postAtTime(this, 1000); } }; } &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ibluekey" android:versionCode="1" android:versionName="1.0"&gt; &lt;uses-sdk android:minSdkVersion="4" /&gt; &lt;application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"&gt; &lt;receiver android:name=".Reciever" android:label="@string/app_name"&gt; &lt;intent-filter&gt; &lt;action android:name="MyTestIntent" /&gt; &lt;/intent-filter&gt; &lt;/receiver&gt; &lt;receiver android:name="com.ibluekey.WidgetActivity" android:label="@string/app_name"&gt; &lt;intent-filter&gt; &lt;action android:name="android.appwidget.action.APPWIDGET_UPDATE" /&gt; &lt;/intent-filter&gt; &lt;meta-data android:name="android.appwidget.provider" android:resource="@xml/widgetprovider" /&gt; &lt;/receiver&gt; &lt;service android:name="com.ibluekey.WidgetActivity$UpdateService" /&gt; &lt;/application&gt; &lt;/manifest&gt; </code></pre>
    singulars
    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.
 

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