Android :: Properly Pass MotionEvent To A Worker Thread?
Jul 20, 2009
My app forwards MotionEvents, reported by GestureDetector.OnGestureListener, to a worker thread. Right now i am doing it by calling MotionEvent.obtain, pass the obtained copy to the worker thread, handle it and recycle it at the worker thread. Is it required to obtain and recycle a MotionEvent if it is passed to another thread? Or could it safely be skiped? If i am making things overly complicated, could you please explain me at which conditions MotionEvent.obtain is usually called?
View 2 Replies
Aug 28, 2009
I am seeing some weird issues and looking to see if anyone knows what is going on. I have a BroadcastReceiver which updates some views on receiving an event. Some psudo code is shown below. What happens is the function runs fine and the app seems to update the textviews BUT when i then try to clear the textviews parent and add new textviews the linearlayout(parent) blanks out and will now draw any of it's children.
View 2 Replies
View Related
Aug 8, 2010
I was trying to post a toast notification in case something goes wrong in a worker thread. I do this by putting a handler.post(funcFailed) in the catch block where funcFailed it a runnable and simply called a function funcFailedshow()
funcFailedshow() is defined to be Toast.makeText(App.this,"Error in funcfailed", Toast.LENGTH_LONG).show();
For some reason i cannot see the toast notification. Even if i replace App.this (app is the applications name) with a getApplicationContext() it does not work.
View 2 Replies
View Related
May 26, 2009
I'm implementing a service that contains a thread to handle all time consuming operation. My core service logic is in a different thread than the ui or main thread. According to the Android document, when the OS plans to free some system resource, it will call onDestroy () on the service and only when onDestroy() returns it will kill the process hosting the service, thus giving opportunity to the service to cleanup.Now, when onDestroy() is called, I want to send a message to my service thread to do the necessary cleanup. Only when the service thread acknowledges that the cleanup or shutdown is complete, onDestroy () should return. I could find a way to send asynchronous messages to threads and the corresponding processing of the messages, but not able to figure out how I need to implement onDestroy(), such that it would send a message to the service thread and should wait for a result, before returning.
View 13 Replies
View Related
Oct 17, 2010
package com.commonsware.android.threads;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class HandlerDemo extends Activity {
Thread mBackground; ProgressBar bar;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
bar.incrementProgressBy(5);
} }; boolean isRunning = false;
@Override
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setContentView(R.layout.main); bar = (ProgressBar) findViewById(R.id.progress);
} public void onStart() { super.onStart(); bar.setProgress(0);
mBackground = new Thread(new Runnable() { public void run() { try { int a = 0;
for (int i = 0; i < 20 && isRunning; i++) { for (int j = 0; j < 2000; j++) {
for (int k = 0; k < 1000; k++) { a++;
} } handler.sendMessage(handler.obtainMessage());
} } catch (Throwable t) { // just end the background thread } } } );
findViewById(R.id.LoginButton).setOnClickListener(
new OnClickListener() { public void onClick(View v) { mBackground.run();
} } );
isRunning = true;
} public void onStop() { super.onStop();
isRunning = false;
} }
View 1 Replies
View Related
Jun 12, 2010
I am want to pass data back from a Thread to Activity (which created the thread). So I am doing like described on Android documentation.Only one thing I am missing here - where and how should be defined mResults so I could access it from both Activity and Thread, and also would be able to modify as needed? If I define it as final in MyActivity, I can't change it anymore in Thread - as it is shown in example.
View 1 Replies
View Related
May 12, 2010
I have this code fragment: Code...
View 3 Replies
View Related
Aug 6, 2010
Here is a thread example in Android SDK sample (BluetoothChat).code...
In order to destroy this thread, first to close the socket. But this thread is still running at the blocked call mmInStream.read() even mSocket.close is successfully run.
Question: How to properly destroy a thread stuck in blocked call?
View 3 Replies
View Related
Jul 13, 2010
I was just on there yesterday i go into browse tonight and now all of a sudden it says pass world invalid from last night till this morning i tried typing in the little letters they had and I cant read it so I go to the google site. I put the info in and it says sorry account has been terminated for terms and conditions I didnt even do any thing to violate them?
View 1 Replies
View Related
Nov 14, 2009
I was expecting the getEdgeFlags() method of MotionEvent to tell me when a MotionEvent had reached the edge of something, but the value returned from getEdgeFlags() is *always* zero. Is this the expected behavior? The documentation says that the flags indicate when a touch has reached the edge of the display. I've tried this on a real device and in the emulator, and the location coordinates never quite reach the edge of the display, and getEdgeFlags() always returns 0. By "never quite reach" I mean that if dragging a finger off the left edge of the display, the smallest X I got was 2. Reaching the edge of the view doesn't seem to change the value returned either.
I suppose I could set the flags myself using setEdgeFlags() using calculations with known dimensions of the object whose edges I care about. Is that how it's supposed to be used? Is this broken for now?
View 3 Replies
View Related
Sep 10, 2009
Debugging on my G1 phone, I am trying to use android.view.MotionEvent.getPressure() and MotionEvent.getSize().
For MotionEvent.getSize(), I always get 0 (the documentation says it returns a value ranging from 0 to 1;
For MotionEvent.getPressure(), it seems to me this actually reflects the real finger touch size, as opposed to "pressure"; for me, I get values range from 0 - 0.63.
Am I missing anything or is it a known bug of the SDK?
View 4 Replies
View Related
Sep 3, 2010
I have a display that is 854x480 pixels. Why is it that the MotionEvent.getX and getY methods return floats? As far as I can tell, the pixels on the display are discrete integers, there is no such thing as a half a pixel on the display.
View 1 Replies
View Related
Sep 11, 2009
I am implementing OnTouchListener and am receiving MotionEvent objects. Some ACTION_MOVE events reports absolute X/Y coordinates, while some reports relative coordinates.
How can I ask a MotionEvent what kind of coordinates it currently represents?
View 3 Replies
View Related
Jun 24, 2009
I have a service running in the background.I have a background thread that gets a reference to the service from the application's main activity. But when the background thread calls a method in the service to display a toast, I get the "Looper not initialized exception".Why,if I have a valid, bound reference to a Service, does this still happen?
View 4 Replies
View Related
Apr 9, 2010
I am having trouble getting my activity to generate a MotionEvent.ACTION_UP. Probably a beginner's error.
In LogCat, I'm only seeing the ACTION_MOVE event (which is an int value of 3). I also see the X/Y coordinates. No ACTION_DOWN and no ACTION_UP.
I looked everywhere for a solution. I found one question on a forum that seems to be the same as my issue, but no solution is proposed: http://groups.google.com/group/android-developers/browse_thread/thread/9a9c23e40f02c134/bf12b89561f204ad?lnk=gst&q=ACTION_UP#bf12b89561f204ad
Here's my code:
CODE:..........................
View 1 Replies
View Related
Mar 17, 2010
I'm writing a simple tile based game using a canvas and a 5X5 grid of tiles. To determine if a tile is clicked I look at the MotionEvent supplied by onTouch. I get the coordinates when MotionEvent.event is ACTION_UP and translate to tiles. This works great on the emulator but when I touch on a device the actual coordinates of the touch register higher than I'd expect as a end user.
I'm wondering what strategies people have used to get a closer to "expected" result. Do you use a simple Y offset? Do you average the coordinates over the life of the touch? Do you use other methods?
View 4 Replies
View Related
Jul 10, 2009
I need to have a left, right and click event in my App.
I am trying it like below:
CODE:...........................
View 2 Replies
View Related
Aug 22, 2010
I couldn't find a definite reference for the size of a MotionEvents history, when there are multiple pointers. The reference says that if you use a getHistorical* function, you might pass it a history position which is somewhere between [0..getHistorySize()-1]. But in a lot of examples handling multitouch if there are multiple pointers they only use history positions between [0..getHistorySize()/ getPointers()-1] (so they divide the history's size with the number of pointers). Which one is the correct way?
View 8 Replies
View Related
Oct 22, 2010
It seems like making any call to event.getHistoricalEventTime(int pos) when there is historical touch position data available makes my application crash. I've searched online and it seems like no one ever uses this method.
View 4 Replies
View Related
Oct 12, 2010
I'm working on a program which used the functions as title.
There's a problem that the tunctions above do not have their metrics on API website.
To avoid misunderstanding, here is an example about "metric" I metioned before.
Ex. size = pixel, pressure = kilogram(kg)
I have no idea about the metric at all.
View 1 Replies
View Related
Sep 7, 2010
How can I implement a run() method of thread if I create a Thread Global?
I mean If I create a Thread Globally then can I implement its run() method {" public void run()"} anywhere in my Application?
In the run() method I have to write the code to perform some action.
IF I can do it then please can anyone show me briefly how to do it particularly.
View 2 Replies
View Related
May 21, 2009
I am writing an application in which i need to handle messages between the main thread(the deafult UI related thread) and the user created Gamethread.
The requirement is like this.
An activity(say "Activity_X") is setting the view by "setContentView(some "View_Y")". In "Activity_X" i have implemeted "onCreateOptionsMenu()" and "onOptionsItemSelected()" fucntions for creating menus & a switch case for action to be taken on selecting those menus.Menu has items like "resume/pause/zoom/" .
All action to be take on selecting these menus are implemented in "View_Y" in a separate Gamethread by extending "Thread" class.
So whenever a menu is selected in "Activity_X" i need to send a message to "View_Y". And on receiving this ,a particular action/method should be called in View_Y(GameThread).
How can i achieve this using Handlers?Is there any other way of doing this? Please do share with me some code snippets for these.
View 3 Replies
View Related
Jul 1, 2010
I am developing one application in which there is an imageview...in which i want to move left or right using mouse touch...for that i found "android.view.MotionEvent" but in MotionEvent there are few events among that ACTION_CANCEL 2. ACTION_DOWN 3. ACTION_UP ......etc.
Hence there is no such event for "LEFT" and "RIGHT" action....so is there any other way to implement the "LEFT" and "RIGHT" move ?
View 1 Replies
View Related
Sep 26, 2010
I'm trying to get coordinates of the mouse, but there seems to be no easy ways. Can't make the MotionEvent object because the constructor is private. Can anyone please tell me how to get the coordinates of the touch/ pointer/mouse? I only want the touch coordinates of ImageView, but wouldn't mind the touch coordinates anywhere on the screen.
View 2 Replies
View Related
May 27, 2010
I have a separate thread running to get data from the internet. After that, I would like to update the ListView in the main thread by calling adapter.notifyDataSetChanged(). But it does not work. Any workaround for that?
View 1 Replies
View Related
Jul 22, 2009
I want to do the drawing in another thread to speed up the game(it is way to slow right now). I was told to do this but don't quite understand why that would speed things up. Is it GameView that should implement Runnable? Should I make the thread sleep when not drawing? where should I start the thread? package com.android.WWS;
import android.app.Activity; import android.content.Context; import android.graphics.*; import android.os.Bundle; import android.view.SurfaceView; import android.view.KeyEvent; import android.view.View; import android.view.View.OnKeyListener; import java.lang.Runnable; import java.lang.Thread;...................
View 4 Replies
View Related
Sep 24, 2010
Purpose of the app:
A simple app that draws a circle for every touch recognised on the screen and follows the touch events. On a 'high pressure reading' getPressure (int pointerIndex) the colour of the circle will change and the radius will increase. Additionally the touch ID with getPointerId (int pointerIndex), x- and y-coordinates and pressure are shown next to the finger touch.
Following a code snipplet of the important part (please forgive me it is not the nicest code ;) I know)
CODE:.............
The problem:
A HTC Desire running Android 2.1 is the test platform. The app works fine and tracks two finger without a problem. But it seems that the two touch points interfere with each other when they get t0o close -- it looks like they circles 'snap'to a shared x and y axle. Sometimes they even swap the input coordinates of the other touch event. Another problem is that even though getPressure (int pointerIndex) refers to an PointerID both touch event have the same pressure reading.
As this is all a bit abstract, find a video here: http://www.youtube.com/watch?v=bFxjFexrclU
My question:
Is my code just simply wrong? Does Android 2.1 not handle the touch events well enough get things mixed up?Is this a hardware problem and has nothing to do with 1) and 2)?
View 1 Replies
View Related
Jan 6, 2010
I have been racking my brain to try to figure out what is going wrong here. I wanted to experiment with multi-touch, so I decided to add the controls for LunarLander to the touchscreen.
Instead of adding buttons, I defined regions on the screen that when touched, would act like the buttons on the keyboard (for example, the gas fires as long as you press the screen in the area defined for the gas button, and stops firing when you release.)
To do this, I added the onTouchEvent override to the LunarView class as follows:
CODE:.....................
View 2 Replies
View Related
Apr 18, 2010
I'd really like to know what the state of that fix is as 2.1 is rolled out onto first generation (MSM7200-based) devices. As it stands, I don't see much of a problem with touch eating up CPU on the Droid and N1 but those are much faster phones so I don't think it would be quite as pronounced on them. My current 1.6 devices (G1 and Tattoo) cut my framerates in half during any touch (with the sleep hack, even). I optimized my new games so that they would run well-enough (25-40fps) on that hardware but they have very touch-centric interfaces so won't work well with that bug. I talked to a few people who run 2.0/2.1 mods on their G1s and they said the problem isn't any better. They still see the big slowdown. I tested on my 1.6 emulator vs a 2.1 emulator and there is a huge improvement. The 1.6 emulator slows down just like my G1 does and the 2.1 emulator shows only a tiny bit of slowdown, which is what I was hoping for. That's encouraging, but I have yet to see a real 2.1 MSM7200 update in the field so I don't know what to think yet.
View 10 Replies
View Related
Jan 3, 2010
I'm running into some issues with input events and garbage collection, or more precisely object allocation. I am creating a game and have pretty much got my head around the OpenGL environment. I've digested all the relevant material I could find regarding performance, memory allocation etc (and watched the excellent presentation by Chris Pruett - http://code.google.com/events/io/2009/sessions/WritingRealTimeGamesAn...). I've pretty much eliminated any object allocations after initial setup from my game (which is still in its infancy), but I'm still getting a bunch of GC calls, like this:...........................
View 6 Replies
View Related