Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- This is my WIdgetprover-Class:
- public class MyWidgetProvider2 extends AppWidgetProvider {
- private PendingIntent service = null;
- @Override
- public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
- {
- final AlarmManager m = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- final Calendar TIME = Calendar.getInstance();
- TIME.set(Calendar.MINUTE, 0);
- TIME.set(Calendar.SECOND, 0);
- TIME.set(Calendar.MILLISECOND, 0);
- final Intent i = new Intent(context.getApplicationContext(), UpdateWidgetService2.class);
- ComponentName thisWidget = new ComponentName(context,
- MyWidgetProvider2.class);
- int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
- i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds);
- if (service == null)
- {
- service = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
- }
- m.setRepeating(AlarmManager.RTC, TIME.getTime().getTime(), 1000 * 60 * 30, service);
- }
- @Override
- public void onDisabled(Context context)
- {
- final AlarmManager m = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- m.cancel(service);
- }
- }
- And this the service that is getting called:
- package com.skyworxx.htwdd;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.Calendar;
- import java.util.Locale;
- import java.util.Random;
- import android.app.PendingIntent;
- import android.app.Service;
- import android.appwidget.AppWidgetManager;
- import android.content.ComponentName;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.net.Uri;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.os.IBinder;
- import android.util.Log;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.RemoteViews;
- import android.widget.TextView;
- import android.widget.Toast;
- public class UpdateWidgetService2 extends Service {
- private static final String LOG = "example";
- @Override
- public void onStart(Intent intent, int startId) {
- Log.i(LOG, "Called");
- AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this
- .getApplicationContext());
- int[] allWidgetIds = intent
- .getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
- ComponentName thisWidget = new ComponentName(getApplicationContext(),
- MyWidgetProvider2.class);
- int[] allWidgetIds2 = appWidgetManager.getAppWidgetIds(thisWidget);
- Log.w(LOG, "From Intent" + String.valueOf(allWidgetIds.length));
- Log.w(LOG, "Direct" + String.valueOf(allWidgetIds2.length));
- for (int widgetId : allWidgetIds) {
- // Create some random data
- int number = (new Random().nextInt(100));
- RemoteViews remoteViews = new RemoteViews(this.getApplicationContext().getPackageName(),
- R.layout.widget_layout2);
- Log.w("WidgetExample", String.valueOf(number));
- worker w = new worker();
- w.execute("1", "2");
- appWidgetManager.updateAppWidget(widgetId, remoteViews);
- }
- stopSelf();
- super.onStart(intent, startId);
- }
- private class worker extends AsyncTask<String, Void, mahlzeit[]> {
- @Override
- protected mahlzeit[] doInBackground(String... params) {
- mahlzeit[] meals=new mahlzeit[8];
- URL url;
- try {
- //doing the network stuff and save all the data in meals
- } catch (Exception e) {
- e.printStackTrace();
- }
- return meals;
- }
- @Override
- protected void onPostExecute(final mahlzeit[] meals) {
- remoteViews.setTextViewText(R.id.textView1,meals[0].getPreis());
- }
- }
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement