Android :: Register Callback Leaks Memory?
Mar 5, 2010
I was trying to find out were my apps memory was being leaked and was able to discover that when calling registerCallback(...) it would lead to a memory leak after a screen orientation change. What could be some possible things that are causing the leak? I've tried many things. And I do have a unregisterCallback(..) call.
View 20 Replies
Apr 7, 2010
I release a class. In the class, there are public fields that can be written. I want to register the callback function which will be called right after my field is accessed. I think I can do that by using JVM tool interface which is supposed to be used for a debugger software. JVM tool interface:
I'm not sure same interface is working on android. or, They provide another form of interface to get a notification of a field access.
View 2 Replies
View Related
Feb 12, 2009
I'm an experienced C++/Java dev who has been truly enjoying that past two days of getting neck deep into the Android SDK. I can foresee a lot of sleepless nights ahead Now, being arrogant due to experience (lol) I basically wrote a hello world Activity, got it to work and promptly decided to write an out of process service with accompanying client for project #2. Android is so well thought out (if not exactly documented although that's an 'over time' issue inmho) that I had basically implented everything but callbacks into the client before realizing (and feeling like a total idiot) that there's a very nice example called RemoteService (lol @ me - again) Basically, this validated everything I'd been doing, although I did notice that because my client is in its own project and namespace and my service is in another project and namespace (but the same Eclipse workspace) that I had to have the service entry in my service's manifest AND my client's manifest (that one took me a while to figure out) in order to bind on the service. Anyhow, everything's great, I am starting to love on Android (figuratively) but I've run into <BRITISH-NESS>a bit of a sticky wicket, eh, wot?</BRITISH-NESS>.
When my client Activity binds on my service (which is running in its own process) and calls the equivalent of 'registerCallback', the interface is added perfectly to the RemoteCallbackList object and I can immediately (right on the next line of code) use the interface to send a notification to the client. Now, my problem is that when my main service thread tries to pull the interface out of the RemoteCallbackList via the broadcast methods, the RemoteCallbackList is always 'empty' - it returns 0 from beginBroadcast. After double checking ensure that I AM actually adding it to the list (because I've been a collossal idiot before) and that I am getting success back from 'register', I immediately think it's a threading issue, so: I add logging code to the service in key places to log what the thread id is repeatedly, and I think "uh, I think I need to use a handler of some sort to make the call back in the thread that handled the registration" and to double check I call beginBroadcast right after 'register' and find that it always returns back the correct number of callback interfaces. So it VERY much appears to be a threading issue (to me) so now I'm a bit stuck I've written a handler so that my main service thread can request the correct thread to actually call 'beginBroadcast' and then thought 'how is it going to know what thread that is...?' and instead am now thinking I need to pass, via a handler or something, the incoming interface from the thread that runs when the client calls the equivalent of 'registerCallback' to my main service thread. What part of the proper paradigm am I missing? BTW, as an example of the thread IDs, my main service thread is #1, the runnable I use for tasks in the main service thread shows an ID of #1, the message handler I was thinking I could use, shows an ID of #1, but the thread ID I get in my code in the service that runs when the user registers their callback is #7.
If I plan to notify clients when the service notices something it thinks they need to know, do I need to notify (somehow) the clients via the thread with ID #7 or do I need to pass the interface I get when the user registers their callback from thread #7 to thread #1 and call 'register' on the RemoteCallbackList from thread #1? Sorry for the verbosity but I figured more is better than less. Again, everything works great except this one little part.
View 9 Replies
View Related
Aug 3, 2010
Will the code cause a memory leak? Essentially I switch between various layouts in my application using setContentView(), and I have member variables of my activity that maintain references to various views (buttons/text views) on the layouts. Am I correct in thinking that if the activity class has a reference to a button and then changes layouts the layout wont be garbage collected because it will still hold a button reference? If this is the case, can I just null the button variable before changing layouts?
View 3 Replies
View Related
May 20, 2010
When start Activity A, I found the memory usage of application is about 5MB. Then start Activity B from A via startActivity. In Activity B, I created a thread, and traverse file system in this thread, after traversing completed, call finish() and to return to Activity A. At this time, I found the memory usage of application is about 8MB (GC is forced before check memory usage). How to find Where memory leaks? By the way, I checked the memory usage with DDMS.
View 5 Replies
View Related
Oct 23, 2010
I have a very simple application which has a problem with getting ListViews to be freed by the GC. i have a ViewGroup which has a ListView. When the page with the ViewGroup no longer has any references to it, and I force a GC, the ListView is not freed. The project in question is quite small and can be found at http://gabysoft.com/download/MemoryLeak.zip. If you run it, the first page has a button and a ListView (which has no items so you cannot see it). When you press the button it switches to a second page which has just a button. When you press the button on the second page, it creates a new ViewGroup and ListView and sets that as the current view. Thus, every time you switch pages, a new ViewGroup/ListView is created, and all references to the old one go away. Hence the old one should be GC'd. However if you switch views 20 times and then force a GC you will see that the ListViews are never freed (i.e. their finalize method (which is logged) is not called). Now here is the really weird part. This happens ONLY if I build my project using Eclipse. If I use Ant to build and install the project, the ListViews are all freed when I do a GC as you would expect. Why would the Eclipse version exhibit this behavior?
View 7 Replies
View Related
Oct 20, 2010
I have a class 'GListView' which extends ListView and acts as it's own adapter. It is declared thus: public class GListView extends ListView implements List Adapter In it's constructor, I set it's adapter to itself
View 2 Replies
View Related
Jul 27, 2010
I've read that it is a mistake and a source of memory leaks in Android application to keep a long-lived references to a Context.
But I don't understand if it is ok to create an class that looks like this one:
CODE:..........
And call it from an Activity:
CODE:.................
View 2 Replies
View Related
Apr 10, 2010
I just read the article 'Avoiding memory leaks' in android blog written by Romain Guy. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.
View 4 Replies
View Related
May 17, 2010
How to trace the Memory Leaks in Android Development? I am working on eclipse IDE to develop the application. i cant find out how to rectify the memory or window Leaks Exceptions? Any Idea.
Mainly the Window Leaked error raises the Illegal Argument Exception? how to rectify both og this.
View 1 Replies
View Related
May 21, 2009
I'm writing a widget. Currently, I'm have a simple ImageView, and calling RemoteViews.setImageViewBitmap(). I'm using a service to do the updates.
I thought it might be a good idea to reuse an existing RemoteViews instance, so I'm only querying it the first time around, and subsequently simply call setImageViewBitmap() with the new image.
This works well initially, but after some time I first start getting "!!! FAILED BINDER TRANSACTION !!!" errors, and later, an OutOfMemory exception.
Simply creating a new RemoveViews instance every time works flawlessy on the other hand. I'm just curios why that would be, any ideas?
View 2 Replies
View Related
Apr 22, 2013
Any user friendly android app which can effectively show which apps cause memory leaks on a phone?
I can only find developer tools to detect memory leaks within apps like Eclipse MAT. Sadly I'm not a developer so I would rather prefer just a list of apps to uninstall and not the exact cause of memory leak within a specific app.
View 6 Replies
View Related
Jul 18, 2009
I've got an Android app developed, and I'm at the point of a phone app development where everything seems to be working well and you want to declare victory and ship, but you know there just have to be some memory and resource leaks in there; and there's only 16mb of heap on the Android and its apparently surprisingly easy to leak in an Android app.
I've been looking around and so far have only been able to dig up info on 'hprof' and 'traceview' and neither gets a lot of favorable reviews.
What tools or methods have you come across or developed and care to share maybe in an OS project?
View 3 Replies
View Related
Dec 23, 2009
I am using kind of results search engine, problem is to remember the searching criteria i made singleton static class which keeps only one instance.In my application there are lots of class level private variables, lots of public static variables, a big util class which contains only static final methods.problem is my application get crash any time any where any spot and interesting thing is crash code always surrounded by try{} catch(Throwable e){} block but never catch, i think it may be memory full issue. I want to discuss one sample case, on the result page i also display result related image, i download image from web and using drawable i place image in the imageview, i created static hashmap to reuse images, some time after downlaod 5 images application crash some times click on a result get user to new detail screen get crash and all code surrounded by try catch block, i am new to mobile program this thing has become night mare to me. Last thing, On emulator hardly application crash but when i try to test the application on device, i am using samsung glaxy android supported to test the application it goes smoth and suddenly it start getting crashed, and after crash android relaunch the activity that throws null pointer exception on every click and caught by try{}catch{} block i think after crashing android dealocate all objects only keep the UI objects thats why when after crash i auto launch the activity clicking causes null pointer exception.how can i stop relaunching crashed activity?
View 1 Replies
View Related
Aug 12, 2010
I have developed a simple application before testing it i want to check whether any memory leaks are there in the application. I don't know how to identify the leaks in Android. I am using Eclipse IDE for development. Is there a good introduction into finding memory leaks in Android apps somewhere?
View 2 Replies
View Related
Sep 22, 2010
How to detect Memory leaks in Android JNI code? I am using Froyo
View 1 Replies
View Related
Aug 28, 2009
I'm trying to pop up an AlertDialog when someone long presses a list item.What I end up with is nested callback objects.I'm not sure if that is the problem but simple Alert dialog examples are not working for me.
View 3 Replies
View Related
Jun 19, 2010
Is it just me, or does it seem like it's been, what, a couple months since the last Froyo RC leak? Ok, maybe more like several days, but aren't you guys starting to jones hard for a newer 2.2 leak? When the first couple came out so quickly one after the other (along with the multiple new baseband versions) it seemed like it was going to be raining Froyo leaks (that sounds odd, doesn't it?) on an almost daily basis. I'm running well on BB Froyo v.2.0 plain vanilla, but looking forward to the next 2.2 RC to stumble out of Moto/Verizon's castle so we can continue the informal beta testing for them.
View 15 Replies
View Related
May 23, 2010
I have been messing with my eris. I held the power and send button and as usual it checked the leak file and asked if I wanted to update. At this time I noticed a list from one to four., one thing that was listed was bootloader and another was hboot My question would there be a way to get into the 2.1 leak file and some how switch the hboot and bootloader in it with the hboot and bootloader that is on the official ota file or some other jnoot or bootloader. Then convert it back to a zip file and reinstalling it like out was a v4 leak. Sorry if this was a stupid post but just trying to help leak users or devs brainstorm a little.
View 5 Replies
View Related
Jul 2, 2010
I bought an EVO off of Ebay about a week or so ago and just noticed my light leakage is getting pretty bad. I have sprints insurance on it so I was wondering a few things.
1. Will it be a pain to turn it in for a new phone, and what do I have to pay to do so...I'm guessing they will send me a new one then I'll mail mine back to them>?
2. Would it be the smarter thing to do to wait just a little bit to see the new builds? I'm using a 0003 with a nova screen.
View 4 Replies
View Related
Oct 14, 2010
Now that it looks like the 2.2 SBF is online, how many people who are running leaks are going to upgrade to the 2.2 OTA that supposedly include an updated bootloader/kernel/radio? For those who did already, do you see any differences at all? Moto made some claims that the new one was better (i.e. that switching between wifi and 3g would be more seamless), but have people noticed differences? I guess I held out on upgrading to OTA because of the no SBF and the whole episode of the unlocked bootloader, but now should I consider upgrading? Would I lose any advantages of staying on the old boot loader?
View 7 Replies
View Related
Aug 28, 2010
I am implementing a context menu for my main activity.
I have some XML to define the items:
CODE:...............
I have this code to create the menu:
CODE:.................
When I click the menu button, my context menu appears with the appropriate items and icons. When I select a menu item, I don't get the callback.
View 1 Replies
View Related
Jul 6, 2010
I'm having trouble getting the GPS's onLocationChanged to run on a different thread. I understand how to manage UI thread when I'm calling a function but with the GPS, I don't actively call the function.
My intent is to have a light flash every time the GPS receives a reading. I have put this function in a Runnable. I passed this function to a class that implements LocationListener. Then in the main class, I started a new thread that calls requestLocationUpdates. I was hoping that onLocationChanged of the LocationListener would run in a different thread, post to the callback and make the necessary UI effects in the UI thread. Unfortunately, the program crashes every time it tries to call requestLocationUpdates. What's the proper way of doing it?
Right now it looks something like this
Main class:
CODE:................
LocationListener class:
CODE:...............
The exception says Can't create handler inside thread that has not called Looper.prepare()
View 3 Replies
View Related
Aug 31, 2010
I have been watching the Google I/O presentation by Virgil Dobjanschi on the correct way to implement REST on Android with services and content providers. http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html
Based on the video I'm doing things the wrong way, which is not surprising given how hard the right way is. Anyway, having been shown the promised land in the video I'm having a bit of a problem figuring out how to get there.
I have most of it nailed but the one thing that's defeating me is the Binder Callback that Virgil references in the slides (see link above), on page 43 it shows step 2 as starting the service with startService( intent ) and step 10 as returning status information using a Binder Callback. There is no example code anywhere in the presentation which is rather frustrating. There is talk of open sourcing the Twitter client which apparently uses this approach but nothing yet and the announcement was in April.
In the video he states: "What is a binder callback? A binder callback, think of it as an interface that was passed in the request intent."
I have searched all over the place but have not been able to find any doc or examples that show how to pass a callback as part of an intent. Nor can I figure out any other way of passing in a callback.
I thought he may be referring to binding to the service and implementing the callback that way. However, he is specifically referring to a local service and using strarSerice() and not bindService(). Also with bindService() the service will be destroyed if the activity is destroyed which defeats the idea. The workaround is to use startService() and then bindService() and leave the service running for the duration. The other problem with bindService() is that the callback can not be use until onServiceConnected() completes which complicates the code even further as the action instructions can not be passed in the intent because the return callback may not be in place in time to return the results.
View 1 Replies
View Related
May 18, 2010
I found this on Android Central (thanks to IzelTokatl) and someone there did verify it worked for OTA 2.1 phones. I tried it on my leak version 3 phone and I got the Hboot error again. I'm thinking this does not bode well for phones with the leak as once Verizon releases the upgrade for download from PCD or HTC we still won't be able to use it until the Hboot problem is fixed. The following instructions for doing the downgrade to 1.5 are cut and pasted from the Android Central forum and I edited them for PC's: Download the MR2 Upgrade Eris ROM from verizon partner: personal Communications Devices
1. Unzip the file
2. Plug your phone into your PC.
3. Navigate to folder ADR6200_MR2_Upgrade
4. Run .exe file in the folder (RUU_Desire_C_Verizon_WWE_1.17.605.1_release_signe d_with_driver.exe)
5. follow on screen instructions.
View 11 Replies
View Related
Jan 13, 2010
Our application will expose a Service that can be called by Activities in other people's applications.In many cases, the parent applications calling Activity may be paused before our Service completes. I am looking for the best way for a Service to communicate back to the calling Activity that may have been paused.These are the known options:
(1) Require calling Activities to have a registerReceiver() with a custom action and broadcast to that from our Service. The only way to secure this registerReceiver() is with a signature-based permission.As our Service communicates with any number of unknown 3rd party apps,we can't sign our Service's parent app with all these unknown certificates. These apps would therefore be exposing an unsecured registerReceiver() on their Activity. Would ideally like to avoid requiring this.
(2) Create a PendingIntent to send results back to the activity and give it to our Service. Our Service would send data to calling Activity's onActivityResult(). Each time the result is delivered, the calling Activity will go through onPause() and onResume() but this should be OK.
(3) The calling Activities could create a Handler. The Activity would then create a Messenger pointing to that Handler and send it to our service. Our Service can then use the Messenger to deliver our message back to the calling Activity.
View 2 Replies
View Related
Sep 13, 2010
In Java, is it possible to associate some object (i.e. a String) with a function to be called ? I have two similar menus and both have a onClickListener with some code like this: Code...
View 4 Replies
View Related
Apr 2, 2010
in android application development, i frequently go through the word "CALLBACK" in many places. i want to know want it means to tell us technically. and how i can manage the callback of the applications.
View 2 Replies
View Related
Dec 31, 2009
Could someone please shed the light as to where onItemClick() function gets called as callback when I click on the item of a ListView?
In core/java/android/widget/AdapterView.java:
onItemClick() belongs to the interface OnItemClickListener of AdapterView.
The listener is set through setOnItemClickListener() of AdapterView.
The listener is only invoked in performItemClick() of AdapterView.
The listener is also invoked indirectly in performItemClick() of ListView.
But, I still don't know where exactly onItemClick() of the listener will get called when I click on the item of a ListView. Logically it should be like:
device -> kernel driver -> dalvik VM -> my app.
Could someone please tell me the exact code that calls onItemClick() when I click on the item through the device?
In this digital era, where computing technology is pervasive, your freedom depends on the software controlling those computing devices.
Join free software movement today! It is free as in freedom, not as in free beer!
Join: http://www.fsf.org/jf?referrer=4445
View 5 Replies
View Related
Nov 10, 2010
I am working on an application in Android and I have to manipulate the data coming from the preview.
I read that the default frame rate is 15fps. I measured the time from one call of the onPreviewFrame function and the next one and I noticed that I got different times depending on the size of the preview (at the moment no other operations are done in this function). How can it be possible? I thought it would be called at any frame so 15 times in a second (approximately every 66ms) independently of the previewFrameSize.
View 2 Replies
View Related