Android :: Android - Can't Handler Inside Thread Not Called Looper Prepare

Sep 30, 2010

I am getting reports of 'Can't create handler inside thread that has not called Looper.prepare()' once I added ScoreNinja to my Android app, and released it to the market. It seems that it isn't happening all the time as the ScoreNinja highscore has lots of entries from users. I have looked on the web for help but there are no clear directions on what to do. I have used the ScoreNinja code exactly as shown on the scoreninja website. BTW If anyone is having problems with ScoreNinja only displaying one score, check to see if the launchmode is not set to 'singleinstance' in your manifest. This fixed it for me!

Android :: Android - Can't  handler inside thread not called Looper prepare


Android :: Can't Create Handler Inside Thread That Has Not Called Looper.prepare

Oct 6, 2010

What does the following exception mean? And how can I fix it?
This is the code:Toast toast = Toast.makeText(mContext, 'Somthing', Toast.LENGTH_SHORT);
This is the exception:
D/VVM ( 684): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
D/VVM ( 684): at android.os.Handler.(Handler.java:121)
D/VVM ( 684): at android.widget.Toast.(Toast.java:68)
D/VVM ( 684): at android.widget.Toast.makeText(Toast.java:231)

View 1 Replies View Related

Android :: Calling Looper More Than Once Causes - Sending Message To A Handler On A Dead Thread

Sep 4, 2010

I am using an Executor [fixed thread pool] with my own ThreadFactory that adds a Looper:

CODE:...............

I am running a thread that makes network requests but if the network fails I would like a dialog message to be displayed to the user. This process is rather involving since it requires making AND displaying the request in the UI thread. I can wait for the user's response to the dialog by simply adding a Loop to the network thread and wait for a message to be send from the UI thread. This allows me to encapsulate the network requests in a while(tryAgain) thread. All works well except when the Looper.loop() method is called the second time (after a second network error dialog is displayed) and a message is sent by the dialog (in the UI thread) to the network thread's handler:

CODE:.............

In the AlertDialog instance is an OnClickListener:

CODE:...............

I've checked that the thread is still active with handler.getLooper().getThread().isAlive() which always returns true but it still gives me "sending message to a Handler on a dead thread". How is it that the Message/Handler has decided that the thread is dead? Shouldn't it rely on the .isAlive() method? In the end I am trying to avoid replicating the thread management build into the Android OS .

View 1 Replies View Related

Android :: Looper - Prepare

Sep 27, 2010

I'm trying to initialize OpenFeint in my game like this:

CODE:...........

Result: 1. OpenFeint initialization sometimes take so song(network actions?). It blocks the main thread. 2. My application remains in onCreate() for too long. 3. My Dev Phone One display ANR(application not responding) dialog prompting me to choose between 'Force Close' and 'Wait' 4. Soon after that, OpenFeint has done its things and my game shows up behind the dialog. 5. Now pressing 'Wait' will dismiss the ANR dialog and I can continue my game properly.

But obviously we don't want ANR dialog. So now I put it in a Thread like this:

CODE:...............

---------------------------------------------------------------------------­-- Result: Problem solved. Everything seems to run fine now.

I put Looper.prepare() there because my game will crash if I don't. The log message told me to put it there. I put Looper.loop(); there because OpenFeint will not initialize at all if I don't. I've read the doc about Looper but honestly I don't understand what the doc says.

Question 1. The doc also tell me this: ------------------------------------------------- public static final void loop ()

Since: API Level 1 Run the message queue in this thread. Be sure to call quit() to end the loop. -------------------------------------------------- Can anyone explain when & where should I call quit()?

Question 2 What will happen if I don't call Looper.quit()?

Question 3 Let me ask this straight. Am I taking the correct approach? Is there some kind of loop running alongside my game all the time if I do this?

View 5 Replies View Related

Android :: Looper - Handler Issue

Oct 10, 2009

I'd like to know if Looper can enable handler to handle one message at a time, instead of handling all the messages in the queue together in one blocking call when Looper.loop() is called.

Because the looper sends all the messages in the queue to the handler one after the other in one blocking call, my application displays the ANR message. Instead, I want to be able to handle one single message, one blocking call at a time - the instant it falls into the queue.

The following code illustrates my problem: (pls note the lines referred: 1,2,3,4&5) Question 1: After calling looper.loop in line3, line4 and 5 don't run. Why is this? I tried quit(), but it doesn't help. Question 2: Instead of displaying 0,1,2,3,4 in one blocking call (at line3), I'd like to have 5 different blocking calls for each. Essentially (sorry, if i sound repetitive), I want to be able to use looper in such a way that each time, it ensures only one message gets handled.

Is there a way to do this?

CODE:..................

View 3 Replies View Related

Android :: Looper Inside An AsyncTask

Oct 27, 2009

I ran into some trouble trying to use a Looper inside an AsyncTask (its doInBackground method). Everything works fine until new Tasks are being created by AsyncTask.sThreadFactory, but once I reach the AsyncTask.CORE_POOL_SIZE limit and AsyncTask begins to recycle the threads, sending messages to my looper (created inside doInBackground) results in a MessageQueue RuntimeException: "sending message to a Handler on a dead thread".

The code I tried was:

CODE:....................

View 4 Replies View Related

Android :: Communicating With A Looper Thread

Feb 9, 2009

I need a message queue in my background thread, so I created a looper thread.

CODE:...................

View 5 Replies View Related

Android :: Better Looper Documentation - Complete Account Of Looper

Jun 23, 2009

Trying to get my head around the specific ins/outs of the Looper object and how it interacts with Threads. Documentation is rather scant on this topic. This is one of those topics that is obvious to the Android core team, but to the rest of us, it's not so obvious.

Can someone point to better documentation or give a more complete account of Looper:

1. What is looper.

2. How does the Android phone use Looper to coordinate message handling?

3. What do I need to do when I get the "Can't create handler inside thread that has not called Looper.prepare()" message?

4. How do I use LocationManager.requestLocationUpdates with Looper, and why does this call require a Looper object?

View 6 Replies View Related

Android :: Passing Data From Bg To UI Thread Using Handler?

Oct 13, 2010

In Handler, we can pass some data from a background thread to the UI thread like this:

private void someBackgroundThreadOperation() {
final String data = "hello";
handler.post(new Runnable() {
public void run() {
Log.d(TAG, "Message from bg thread: " + data);
}
}
}

If we use the above, we cannot then use Handler.removeCallbacks(Runnable r), because we won't have references to any of the anonymous runnables we created above. We could create a single Runnable instance, and post that to the handler, but it won't allow us to pass any data through:.............

View 1 Replies View Related

Android :: Way To Know Another Thread's Handler Not Null Before Calling It?

Feb 2, 2010

My program threw a NullPointerException the other day when it tried to use a Handler created on another thread to send that thread a message. The Handler created by the other thread was not yet created, or not yet visible to the calling thread, despite the calling thread having already called start on the other thread. This only happens very rarely. Almost every test run does not get the exception. I was wondering what the best way is to avoid this problem for sure with minimal complication and performance penalty. The program is a game and very performance sensitive, especially once it is running. Therefore I try to avoid using synchronization after setup, for example, and would prefer to avoid spinning on a variable at any time.

View 2 Replies View Related

Android :: Update UI In Main Activity Through Handler In Thread

May 9, 2010

I try to make several connection in a class and update the multiple progressbar in the main screen. But I've got the following error trying to use thread in android : Code: 05-06 13:13:11.092: ERROR/ConnectionManager(22854): ERROR:Can't create handler inside thread that has not called Looper.prepare() Here is a small part of my code in the main Activity.

public class Act_Main extends ListActivity
{ private ConnectionManager cm;
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
// Set up the window layout
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); }
public void startConnection() { ......

View 5 Replies View Related

Android :: Handler Fails To Deliver Message / Run Able To Main Thread

Feb 18, 2010

I have an app with a two threads - main and data loader. When data loader finishes it posts a Runnable object to the main thread (as described in the DevGuide), but it never gets delivered and run. Here's the basic code:

class MyApp extends Application{
public void onCreate()
{LoaderThread t = new LoaderThread();
t.start(); }
private class LoaderThread extends Thread {
public void run()
{ SystemClock.sleep(2000);
boolean res = m_handler.post(m_runnable);
if(res)
Log.d(TAG, "Posted Runnable"); } ............

View 2 Replies View Related

Android :: What Difference When A Class Extend From Handler And Thread? - In Framework

Mar 18, 2010

What is the difference when a class extend from Handler and Thread?

As described in developer.android.com
...
Each Handler instance is associated with a single thread and that thread's message queue.
...

Does the thread has no message queue ?

Any benefit for a class extend from Handler?

View 2 Replies View Related

Android :: AudioTrack Start Called From Thread

Dec 8, 2009

I am getting the 'AudioTrack::start called from thread' when starting an AudioTrack. I am using it in a thread. I asume I shouldn't but why? I see it as a major limitation.

View 4 Replies View Related

Android :: What Happens To Thread As On Destroy Is Called When Device Is Rotated

Jun 15, 2010

I would like to know as to what will happen to the thread which has been created by an activity and the device is rotated. I have observed that the onDestroy method is called when this happens. Will the thread be killed too?If the thread is not killed, how can I reassociate the thread with the activity as a new instance of the activity is created on rotation.

View 1 Replies View Related

Android :: Run Query On Background Thread On Cursoradapter Doesn't Get Called?

Jul 25, 2010

I have a listactivity as a startup screen in my application. Which is displaying database records using custom cursor adapter. On create I set the filterable flag - getListView().setTextFilterEnabled(true)

My cursoradapter overrides runQueryOnBackgroundThread which runs corresponding query. The problem is that after typing some text and hitting enter, runQueryOnBackgroundThread never gets called. However, when the item click in the same view launches another activity(detail view of the record) and I come back to the original list activity, hitting back button, then text filtering works just fine. I don't call setTextFilterEnabled anywhere except during the initialization process and I can't really find any other API affecting this behavior, so any guesses why text filtering doesn't work initially, but all of the sudden starts working when I come back to the list activity from child activity?

View 3 Replies View Related

Android :: OpenGL Thread Suddenly Dead? (on Draw Frame No More Called)

Mar 22, 2010

I have a problem with a suddenly dead(?) OpenGL Thread. After an indeterminate time (30 seconds to a couple of minutes) the onDrawFrame of the Renderer simply doesn't get called anymore. I get no exception, no ForceClose, no ActivityNotResponding, no nothing! I can still open the Menu, have another Handler/Runnable-cycle logging out "Alive", etc Recently I introduced some native stuff (physics-library). But I can verify that there is no native problem, as there is obviously no native crash and after the GLThread died, I can still do like: Log.d("Before native call") nativeCall(); Log.d("After native call") Maybe anyone of you experienced something similar to this?

View 4 Replies View Related

Android :: Remote Callback List Register Called On One Thread Broadcast Initiated

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

Android :: Http Post Abort Not Returning Immediately When Called From Separate Thread

Mar 24, 2010

I am using a DefaultHttpClient and a ThreadSafeClientConnManager to share the httpClient across threads. That part is working well. However, when I execute an HttpPost in one thread, and call httpPost.abort() from another. It does not return immediately and continues blocking until the socket timeout is reached in most cases. Am I missing something else? I've tried using: connectionManager.closeIdleConnections(30, TimeUnit.SECONDS); connectionManager.closeExpiredConnections();

View 2 Replies View Related

Android :: Looper Doubt

Aug 10, 2010

I have a doubt in Looper. I want to know when we should use Looper. If any good link for more clarification, it would be great.

View 2 Replies View Related

Android :: Looper - LoopOnce

Jul 14, 2009

I have a thread that does all my rendering code for a game (including animations). I want to be able to communicate with that thread via Messages instead of locking / synchronization. This means that I need to both support a message queue and *also* support my own rendering loop. Normally I would just clear the message queue every frame of rendering so worst case scenario the messages sit on the queue for one frame before getting cleared out. This also gives a bit of priority to messages in that if the queue backs up the rendering will take a back seat until it empties out.

Everything was going fine until I realized that Looper doesn't have a "Clear the Queue" function! I looked at the source code for Looper.loop() and it appears that the code necessary to manually traverse the MessageQueue is protected, so I can't even write the ClearQueue function myself.

Does anyone here have any feedback on how I can have a thread that keeps the MessageQueue clear at the same time as allowing me to peg the CPU rendering as many frames per second as I can?

My current thought is to insert a message into the MessageQueue along the lines of "RenderOneFrame". When this message is popped off the queue I would render one game frame. Before returning from my rendering code though I would push another copy of the RenderOneFrame message back onto the queue. This means any messages added to the queue while I was busy rendering the frame would get processed before the RenderOneFrame mesage and once the queue was "clear" (ie: RenderOneFrame message was back on top) I would repeat the process.

I suspect that this will work, though I am open to suggestions for either a clear or faster method (I'm more interested in clean at this point, but at optimization time I'll be interested in faster if I bottleneck on this code).

View 3 Replies View Related

Android :: Quitting The Looper

May 8, 2010

I have a thread I use to periodically update the data in my Activity. I create the thread and start a looper for using a handler with postDelay(). In onDestroy() for my activity, I call removeCallbacks() on my handler.

Should I then call handler.getLooper().quit()? Or not worry about it and let the OS deal with it? Or would it just run forever then, consuming CPU cycles?

View 2 Replies View Related

Android :: ScrollView With Buttons Inside / No Response Until Second Click On Any Button Inside

Oct 30, 2010

I've been a couple of days trying to solve this thing but I can'f figure it out.The problem is, simple activity, with simple layout, ScrollView -> LinearLayout -> and a lot of buttons inside the layout (within the scroll content). Everything works just fine but one tricky thing. When I click a button let's say at the top of the scroll content and inmediatelly I scroll down to the bottom of the content and I click other button there, nothing happens until I click a second time and all come to normal again.This can be reproduced anytime and it's code independent (i've tried more than 20 scenarios). I've not much experience in android yet but looks like the scroll listener stops the onclick listener or something like that.

View 1 Replies View Related

Android :: ListView Inside LinearLayout Inside ScrollView

Jul 7, 2009

So I've been extremely frustrated by this for a long time now.I've posted before, but can't seem to find a good solution. My goal is to have something pretty much exactly like the installed application details page in the Android Market.I need a list of items displayed along with other content above the list, and would like the content above to scroll up along with the list (exactly like the application details does for the "My Review" and other descriptive info).Due to responses to my previous posts, I came to believe that it really wasn't possible to do this with a ListView.So rather than using a ListView, I refactored my code to use a simple LinearLayout and add individual View items to the list, thinking I could just set each View as clickable and add an OnClickListener to each View in the LinearLayout.That's not working at all though, and now I'm getting even more frustrated.If someone can help me get the OnClickListener working, then I think it'll work, but I do need a separator for the LinearLayout.How do I add a separator like the one used for ListView to my LinearLayout?

View 12 Replies View Related

Android :: Android 1.5 - Asynctask DoInBackground Not Called / Method Called

Oct 26, 2010

I am running into an issue with the way my asynctasks are executed. Here's the problem code:

firstTask = new background().new FirstTask(context);
if(firstTask.execute().get().toString().equals("1"))
secondTask = new background().new SecondTask(context);

What I'm doing here is creating a new asynctask object, assigning it to firstTask and then executing it. I then want to fire off a separate asynctask when the first one is done and making sure it returns a success value (1 in this case). This works perfectly on Android 2.0 and up. However, I am testing with Android 1.5 and problems start popping up. The code above will run the first asynctask but doInBackground() is never called despite onPreExecute() being called. If I am to execute the first task without the get() method, doInBackground() is called and everything works as expected. Except now I do not have a way to determine if the first task completed successfully so that I can tell the second task to execute. Is it safe to assume that this is a bug with asynctask on Android 1.5? Especially since the API says that the get method has been implemented since API 3. Is there any way to fix this? Or another way to determine that the first task has finished?

View 2 Replies View Related

Android :: Prepare The UI From The Webservice

Aug 30, 2010

Playing around with the UI and SQLLite for a while and it looks pretty good to me . We have a requirement that for the App that all the questions would be coming from the server through REST / Web service which would be displayed on the App..

say for e.g if there are 4 questions
1) Enter your Name -- Text Box
2) Did you sleep well last night -- YES / NO
3) How many hours did you sleep - Text Box
4) How did you hear about us -- Drop down

So the requirement is that the Questions would be displayed on the App after doing a SYNC with the server during the SYNC with the server the Questions would be downloaded from the SERVER through REST / Web service..if the phone is not connected then pull the questions from the Database...

These questions are simple questions and they change quite often and we have a similar app which is there for iphone which does this ....

View 1 Replies View Related

Android :: Camera Prepare Fails

Sep 10, 2009

I'm trying to build a simple video recorder for an Android device and I've had limited success and mixed results. It worked once, but now, without changing anything, I'm getting a "Camera is not available" error followed by "prepare failed -2147483648" error.

View 1 Replies View Related

Android :: Prepare Failed In MediaRecorder / Way To Fix

Jul 3, 2009

I am trying to develop an application with Android 1.5(cupcake_r1) for a week but always get an error reported in prepare of MediaRecorder. Can anybody help me to figure out the problem I got in the code below:

PS. In order to figure out the problem, I suppressed the audio recording, and the SDcard is installed in the phone.code...

View 3 Replies View Related

Android :: Api I Can Use To Prepare VCard In Droid?

May 18, 2010

I am preparing a contacts application and would like to support the VCard export. Can anyone tell me if there is any API I can use to create a VCard.

View 4 Replies View Related

Android :: How To Use Other External Cursor / Prepare By SQL Database?

Sep 21, 2009

In the API Demo, there is example on using Simple Cursor Adapter. However, it is using the MediaS tore cursor. Is there any method so that I can use other external cursor prepare by SQL database. I don't know what should I input to the from String.

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved