Thanks Magpad for your kindly help

So you're saying that my application's behaviour depends on the user's
setting?

On 4月1日, 上午1時49分, magpad <[email protected]> wrote:
> Hi
>
> How about "Wi-Fi sleep policy" setting?
> Did you set "Never" value?
>
> On 3月26日, 午後11:30, Tako Au <[email protected]> wrote:
>
> > I have a terrible bug in my widget.  The widget is waken up using an
> > AlarmManager (the update interval is chosen by users, ranging from 30
> > mins to 2 hours) to grab some data from the Internet and display it on
> > the widget.  I do not hold a wakelock since if the phone sleeps, just
> > let it sleeps.  There's no way to update the information since nobody
> > will see it.
> > If I put the phone in the basement (has no wi-fi or cell signal) for
> > about an hour. the phone will definitely not update anything.
> > However, when I get it back from the basement, the cell network could
> > never be recovered again no matter how long I have waited (it just get
> > an X on the cell signal icon on the notification bar) that I must
> > restart the phone.  May I know if a partial wake lock must be held on
> > checking network availability?
>
> > Your help is highly appreciated.  Please find the code skeleton as
> > below:
>
> >         public void onReceive(Context context, Intent intent) {
> >                 ......
> >                 Intent intent = new Intent(context, UpdateAppWidget.class);
> >                 context.startService(intent);
> >                 ......
> >         }
>
> >         public static class UpdateAppWidget extends Service {
> >                 @Override
> >                 public void onStart(Intent intent, int startId) {
> >                         ......
> >                         ConnectivityManager cm =  (ConnectivityManager)
> > context.getSystemService(Context.CONNECTIVITY_SERVICE);
> >                         if
> > (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable() ||
> >                                 
> > cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isAvailable()) {
> >                                 ......Grab something in the net.......
> >                         }
>
> >                         ......
> >                         //  Make another alarm for next update
> >                         Intent widgetUpdate = new Intent();
> >                         
> > widgetUpdate.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
> >                         
> > widgetUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new
> > int[]{widgetId});
> >                         
> > widgetUpdate.setData(Uri.withAppendedPath(Uri.parse(URI_HEADER),
> > String.valueOf(widgetId)));
> >                         PendingIntent newPending = 
> > PendingIntent.getBroadcast(this, 0,
> > widgetUpdate, pendingIntent.FLAG_UPDATE_CURRENT);
> >                         AlarmManager alarm = (AlarmManager)
> > this.getSystemService(Context.ALARM_SERVICE);
> >                                         alarm.set(AlarmManager.RTC, 
> > System.currentTimeMillis() + 1000 *
> > currentValue, newPending);
>
> >                         //  Refresh the widget
> >                         manager.updateAppWidget(widgetId, views);
>
> >                         //  Kill the service after done
> >                         this.stopSelf();
> >                 }
> >         }
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

To unsubscribe, reply using "remove me" as the subject.

Reply via email to