Android :: How Update Widget Often But Only When It Is Visible
Mar 10, 2010
I'm going to create widget which needs to update its content every minute (it shows time-related data).
However, there is no need to update widget if it is currently invisible, which means:
screen is turned off
another app is running
widget is placed on another (invisible) home screen tab
What is the best way to update only visible widget every minute - without waking up device nor doing unnecessary computations? After widget becomes visible, small lag before update is acceptable.
View 2 Replies
Jan 14, 2010
I'm at the beginning of writing an AddWidget for the home-screens. From what I understand, these can only utilize RemoteViews ran by the home-process and not your own. Which means we won't be getting any callbacks, such as onDraw. Is there a way you can get knowledge of how often and for how long a widget is visible? The RemoteView API seems very simplistic, what am I missing?
View 2 Replies
View Related
Aug 6, 2009
It would appear on a G1 (with the latest software update) that onUpdate () runs even when the widget is not visible. Is there a way of sensing that the widget is or is not visible or is otherwise in foreground? That is, running the code below shows a logcat message at whatever interval the Widget is scheduled to update, whether it's in foreground or not, whether even the screen is dim or otherwise in deep sleep. It would seem onUpdate should only be scheduled to run when the Widget is in the foreground or visible. Is this a defect in the G1, or is there some other API call to detect if the Widget is visible?
public class HomeScreenWidget extends AppWidgetProvider { ...
View 2 Replies
View Related
Sep 21, 2009
When i ran my old application in 1.6 i noticed that the progress bar was not showing up on the screen.When i analyzed it further i found the issue.The progress bar is getting activated but its not visible since my background color is also white.When i changed the background color i was able to see the progress bar.Is there no other way to make the progress bar visible other than changing the background color..Shouldn't the progress bar be visible under all background colors??
View 2 Replies
View Related
Oct 5, 2010
I have a Android with Lee Droid Froyo. Also is the standard messaging app along with Handcent SMS app. The first issue is that after I receive messages for a period of time (week or so) messages start coming in as MMS messages instead of SMS from a 5556 number, not the person who sent the SMS. I check the details and it states the incoming message is "SMS Message", however both stock message and handcent app handle and label as a MMS message from user 5556 but the message in the MMS is blank. When the messages arrive they are visible in the locked screen messages widget then disappear after entering the program to view them. I had the "delete old messages" unchecked and had a SMS message limit of 200. I have since checked the "delete old messages" and increased to 300 the SMS message limit but still have the same issue.
View 1 Replies
View Related
May 6, 2010
I'm developping an application in Android 1.6 (and can't use 2.0 or older).
I add a new contact on my phone as following code...
After that, I add phone numbers in the same way. It works as I am able to view the new added contact with following code :
Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
this.startActivity(intent);
My problem is that, after adding and viewing the new contact, I can't see it in Contacts application unless I synchronized all my contacts (I also did a search with the contact's name, found it, nevertheless it wasn't added in contacts list).
How can I programmatically update the contacts in order to immediately have my new contact added in Contacts application?
View 1 Replies
View Related
Mar 20, 2010
I recently upgraded my Android app to support multiple resolutions. Previously, my Android.manifest file had a line:
To support multiple density and resolution devices, I changed this to:
CODE:............
I then added a couple of new directories, like drawable-hdpi-v4 and drawable-long-hdpi-v4 that includes the high-res versions of the graphics. That's about it.
Ever since releasing this update, there have been a decent number of users complaining about various problems:
the app icon doesn't appear (I did not create a high res version of the icon)
the home screen widget no longer works, even if they delete and re-add it (this code did not change with the update). I've had a user send me their error log, which shows:
CODE:................
There is one questionable section in my existing widget code that may be relevant:
CODE:..........
And perhaps most troublesome: the sqlite database is no longer accessible/writeable for some users so their data is no longer available. I did add the WRITE_EXTERNAL_STORAGE permission to the manifest. This is only happening to certain users and it tends to be HTC Eris users. In that error log I see things such as:
CODE:.........
It's as if the update has caused a new process and it can't access the old process's data, or something.
View 1 Replies
View Related
May 1, 2010
I can create a static widget without thinking, I can even create a widget like the analogue clock widget that will update itself, however, I can not for the life of me figure out how to create a widget that reacts to when a user clicks on it. Here is the best code sample that the developer documentation gives to what a widget activity should contain (the only other hint being the API demos, which only creates a static widget):
public class ExampleAppWidgetProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// Get the layout for the App Widget and attach an on-click listener to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
views.setOnClickPendingIntent(R.id.button, pendingIntent);................
View 2 Replies
View Related
Nov 27, 2010
data monitor widget missing after update to 2.1-xperia x8...any ideas?
View 1 Replies
View Related
Aug 9, 2010
I initialize some arrays in an onUpdate() method and after that, using an intent and a button, I try to call onReceive() function which runs fine but cannot access arrays set in onUpdate() method. Why is that? Those array's are object variables and are declared public.Am I missing something?package net.aerosoftware.widgettest;
import java.util.HashMap;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
public class WidgetTest extends AppWidgetProvider { public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
public HashMap<Integer, String> channelsImages;
@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ Log.e("UPDATE", "Start");
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
channelsImages = new HashMap<Integer, String>();
channelsImages.put(0, "one");
channelsImages.put(1, "two");
Intent active = new Intent(context, WidgetTest.class);
active.setAction(ACTION_WIDGET_RECEIVER);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
remoteViews.setOnClickPendingIntent(R.id.buttonclick, actionPendingIntent);
super.onUpdate(context, appWidgetManager, appWidgetIds);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
Log.e("UPDATE", "End");
} @Override public void onReceive(Context context, Intent intent)
{ Log.e("RECEIVE", "Start 2");
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER))
try Log.e("SIZE", "Size Of channel array: "+channelsImages.size());
} catch(Exception e)
Log.e("ON_RECIEVE_ERROR", " "+e.getMessage());
super.onReceive(context, intent);
Log.e("RECEIVE", "End");
View 2 Replies
View Related
May 28, 2010
I am currently learning about widgets in Android. I want to create a WIFI widget that will display the SSID, the RSSI (Signal) level. But I also want to be able to send it data from a service I am running that calculates the Quality of Sound over wifi. Here is what I have after some reading and a quick tutorial: public class WlanWidget extends AppWidget Provider {RemoteViews remoteViews; AppWidgetManager appWidgetManager; Component Name thisWidget; WifiManager wifiManager; public void onUpdate(Context context, AppWidgetManager appWidget Manager, int[] appWidgetIds) { timer timer = new Timer(); timer.schedule AtFixed Rate(new WlanTimer(context, appWidgetManager), 1, 10000); The above seems to work ok, it updates the SSID on the widget every 10 seconds. However what is the most efficent way to get the information from my service that will be already running to update periodically on my widget? Also is there a better approach to updating the the widget rather than using a timer and timertask?
View 12 Replies
View Related
May 12, 2010
Does anyone know if the 2.2 update is going to bring HTC sense along with the support of flash player? And if so, is that how I acquire this weather widget?>>>>[follow link]> http://www.gadgetsdna.com/motorola-droid-running-android-2-1-and-htc-sense/1572/>>
View 4 Replies
View Related
May 18, 2010
I have 2 questions about widgets update
I have 2 buttons and i need to change one button text when i press the other one, how can i do this?
The first time i open the widget it calls the onUpdate method, but it never calls it again. I need to update the widget every 2 seconds and i have this line in the xml.
android:updatePeriodMillis="2000"
Do i need a service or should it works just with the updatePeriodMillis tag?
onUpdate method
CODE:..................
View 2 Replies
View Related
Oct 6, 2010
Can anyone tell me the best way to update widget every minute. Now I'm using thread inside the AppWidget, but sometimes i get error FAILED BINDER TRANSACTION !!! After that error, i always got a lot of error like that all the time and i can't change the view in my widget again.
View 1 Replies
View Related
Sep 22, 2009
I have been looking for a way to update a widget asynchronously, for example, when the phone receives a text message. I have a broadcast receiver set up with code that runs upon receiving a message. I also have an AppWidgetProvider that is set up and running. It seems like the *only* way a widget can be updated is upon its interval, or when the user interacts with it. Is there any way to update a widget upon a system event?
View 6 Replies
View Related
Nov 1, 2010
I have a widget, its setup so that when I click on it, it opens some settings in an activity.
CODE:................
This configures some settings for the application. What I want to achieve is to have the widget update its view to reflect the changed settings when the Activity I launch closes. Using the update interval or any other type of polling isn't appropriate for this.
I've seen a couple places here and in the android docs this code used:
CODE:...................
But I don't know how to get the mAppWidgetId value. I tried following the example for a widget configuration activity here http://developer.android.com/guide/topics/appwidgets/index.html, but in the following code,
CODE:............
Extras is always null, so I never get the AppWidgetID.
View 1 Replies
View Related
Nov 8, 2010
I have added a widget and instead of updating it every xxx minutes, i want to update it only if in my activity something is changed. But how can i call the onUpdate Routine of my widget from my activity?
View 3 Replies
View Related
Mar 26, 2010
I have a widgett that supports for many languages, but if the user change the language in Settings, my widget don't update.. Only works, if I close it and open again, or rebook the handset..
View 2 Replies
View Related
Apr 22, 2009
Depending on what I do in my application, I might want to force an update on my widget. I've have had a poke around and can't seem to find any API for doing a manual update. At the moment, I have a function that sends a broadcast and my onReceive does this:
CODE:...............
Is there a proper way to do this, which sents the int array to the correct values? Or do I have to do it like this instead?
View 16 Replies
View Related
May 1, 2010
I respond to a button press on my appwidget in the onreceive method. When the button I pressed, I want to force the widget to call the onupdate method.
View 2 Replies
View Related
Aug 9, 2010
I'm just starting with android development and have written an application to show details about the battery status.
Now I wanted to put the whole thing into an widget - and here's the question:
Do I really need a update service in the background to listen for ACTION_BATTERY_CHANGED intents? My first thought was to put just a <action android:name="android.intent.action.ACTION_BATTERY_CHANGED" /> line into the <intet-filter> tag of the widget in the AndroidManifest.xml - but obviously it's not that simple.
If the UpdateService is the right way I'll do so - but I just wanted to make sure what the proper solution is.
View 3 Replies
View Related
Jul 21, 2010
I wrote one widget that updates per 5-seconds and I found that if it's run for a period of time, com.android.acore will occupy almost 100% cpu. Could somebody give me suggestions or help?
View 9 Replies
View Related
Aug 11, 2010
I hope it is the right android group for this question. I have a widget that is essentially an image button that toggles display and speaker modes on a custom Android 2.1 platform. It also displays different images to indicate what mode is currently selected. We are adding a hardware button that can also change the same display modes externally. I will have a driver that translates button presses to some events (maybe emulate a key press through input events or something else). If the user changes the mode by pressing hardware button, the widget will not know about that and will display wrong image. Is there a way to synchronize the widget state with the current mode without constantly polling the driver from the widget code? Widget can start a background service that would poll my driver every second or so and update the picture according to the mode reported by the driver. It does not look like a good solution to me. Can widgets receive any events besides clicks? Can widget detect when it becomes visible ? It looks like "remoteViews" cannot register any event listeners other than OnClickListener
View 2 Replies
View Related
Aug 11, 2010
I know it's possible, but I can't figure out a way to trigger an update of my widget from the main activity. Isn't there some general intent I can broadcast?
View 1 Replies
View Related
Nov 23, 2009
I have the Droid and my fb widget stopped updating. It used to work fine but has been sketchy for a few days. Is this happening to anyone else?
View 2 Replies
View Related
Jan 16, 2010
I am trying to implement a simple widget for display on the home screen. The problem I am experiencing is that onUpdate is only being called once when I install the widget. The configuration is below. Note: I will not leave update period at 20 secs as I know that would kill battery (just testing).
Configuration:
`<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp" android:minHeight="72dp"
android:updatePeriodMillis="20000"
android:initialLayout="@layout/my_custom_app_widget">`
</appwidget-provider>`
Manifest Excerpt:
`<receiver android:name="MyCustomWidgetProvider"> <intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>`
I am observing the following behavior when I install the widget:
In my WidgetProvider class on onReceive is called then onEnabled then onReceive, then onUpdate.
After that the widget displays and onUpdate is never called again. I also inspect the settings of the provider when onUpdate is called and everything set in XML above (e.g. update period) is correct.
View 1 Replies
View Related
May 28, 2010
I am currently learning about widgets in Android.I want to create a WIFI widget that will display the SSID, the RSSI (Signal) level.But I also want to be able to send it data from a service I am running that calculates the Quality of Sound over wifi.Here is what I have after some reading and a quick tutorial:public class WlanWidget extends AppWidgetProvider{
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
WifiManager wifiManager;
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new WlanTimer(context, appWidgetManager), 1, 10000);
private class WlanTimer extends TimerTask{
remoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
public WlanTimer(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
thisWidget = new ComponentName(context, WlanWidget.class);
wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
@Override
public void run() {
remoteViews.setTextViewText(R.id.widget_textview,
wifiManager.getConnectionInfo().getSSID());
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}The above seems to work ok, it updates the SSID on the widget every 10 seconds.However what is the most efficent way to get the information from my service that will be already running to update periodically on my widget?Also is there a better approach to updating the the widget rather than using a timer and timertask? (Avoid polling)UPDATE As per Karan's suggestion I have added the following code in my Service: RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
ComponentName thisWidget = new ComponentName( context, WlanWidget.class );
remoteViews.setTextViewText(R.id.widget_QCLevel, " " + qcPercentage);
AppWidgetManager.getInstance( context ).updateAppWidget( thisWidget, remoteViews );This gets run everytime the RSSI level changes but it still never updates the TextView on my widget, any ideas why?
View 2 Replies
View Related
May 11, 2010
I'm trying to make a widget to my app, but it doesnt update.I just need to change the textview text and open an activity when a press a button, but none of them works
View 1 Replies
View Related
Apr 7, 2010
im looking for an app that will be able to give me updates for my football team, aswell as updates for scores.at the moment im using a combination of soccer live score, to check scores and fotmob 4 to look at news and stats but its a bit convoluted, any1 know of any apps that can do both? or are an improvement on fotmob
View 2 Replies
View Related
May 16, 2010
When our app gets updated sometimes the buttons on existing widgets get the wrong icon drawables, and sometimes the layout itself is broken. I believe this is because the update has different values for some of the drawable and other resources, since they're generated alphabetically, but the widget host still retains the old ids. A delete and re-create of the widget fixes the problem, but a number of users get confused by it and of course it just looks bad.
Is there something I should be doing to prevent this? If not are there any workarounds, other than making all the resources used by widgets start with "0" or something equally ugly?
View 3 Replies
View Related