I couldn't read your post. > So you're saying that my application's behaviour depends on the user's > setting? I think, yes.
#my previous post is about Wi-Fi only. I'm not sure about cellular network. On 4月1日, 午前2:57, Tako Au <[email protected]> wrote: > 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

