Android :: How Can I Stop A Thread In A Activity?
Dec 9, 2009
My problem is: Activity A called Activity B, and in Activity B, it start a background thread to do some client-server work. But it maybe takes too much time. So i add a cancel button to call the stop() method to stop the thread, and call finish() to finish the Activity B and go back to Activity A. Although it is back to Activity A, the thread isn't stop immediately. Can i just call the finish() to go back to Activity A, and leave the thread to exit by itself? If it is not the right way, which is?
View 10 Replies
Oct 18, 2010
10-18 10:26:39.382: ERROR/global(13919): Deprecated Thread methods are not supported.
10-18 10:26:39.382: ERROR/global(13919): java.lang.UnsupportedOperationException
10-18 10:26:39.382: ERROR/global(13919): at java.lang.VMThread.stop(VMThread.java:85)
10-18 10:26:39.382: ERROR/global(13919): at java.lang.Thread.stop(Thread.java:1379)
10-18 10:26:39.382: ERROR/global(13919): at java.lang.Thread.stop(Thread.java:1344)
10-18 10:26:39.382: ERROR/global(13919): at spexco.hus.camera.Camera.cancel(Camera.java:273)
10-18 10:26:39.382: ERROR/global(13919): at spexco.hus.cepvizyon.ViewCam.onStop(ViewCam.java:83)
10-18 10:26:39.382: ERROR/global(13919): at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1169)
10-18 10:26:39.382: ERROR/global(13919): at android.app.Activity.performStop(Activity.java:3797)
10-18 10:26:39.382: ERROR/global(13919): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3416)
10-18 10:26:39.382: ERROR/global(13919): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3487)
10-18 10:26:39.382: ERROR/global(13919): at android.app.ActivityThread.access$2800(ActivityThread.java:119)
10-18 10:26:39.382: ERROR/global(13919): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1896)
10-18 10:26:39.382: ERROR/global(13919): at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 10:26:39.382: ERROR/global(13919): at android.os.Looper.loop(Looper.java:123)
10-18 10:26:39.382: ERROR/global(13919): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-18 10:26:39.382: ERROR/global(13919): at java.lang.reflect.Method.invokeNative(Native Method)
10-18 10:26:39.382: ERROR/global(13919): at java.lang.reflect.Method.invoke(Method.java:521)
10-18 10:26:39.382: ERROR/global(13919): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
10-18 10:26:39.382: ERROR/global(13919): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
10-18 10:26:39.382: ERROR/global(13919): at dalvik.system.NativeStart.main(Native Method)
View 2 Replies
View Related
Jun 17, 2010
I want to stop currently running thread but -Thread.stop() - Thread.destroy() are DEPRECATED so can any one tell me how to stop the Thread .
View 6 Replies
View Related
Apr 29, 2010
I am basing my game off of the Lunar Lander demo.
The problem I am having is my game not restoring its last saved state when it comes back into focus.
When the game loses focus/quits it saves all the information to a Bundle correctly, then runs surfaceDestroyed() to shut down the thread.
When I restart the game, I thought onCreate(Bundle savedInstanceState) method was supposed to always start first, then restore the saved Bundle if it is not "Null". But because it sees that I have started/ created a thread last time, it jumps straight to surfaceCreated method.
The only thing I can think of is to find a way to get rid/destroy the thread so that it runs onCreate at the start. However the stop() and destroy() methods for threads have been depreciated. Is there anyway to do this? Or is there a better method of saving an instance of the game? code...
View 7 Replies
View Related
Nov 19, 2010
Can any one tell me , how to stop thread safely ? Can any one help me how to stop or cancel this thread safely ? Code...
View 2 Replies
View Related
Jul 5, 2010
I use the following code to receive the data using UDP. When I click the back button my screen visual is closed and it shows the home screen. But a thread is working in the background (it receives the data from the UDP server). When I close the application I also need to stop the thread. How to stop a thread? Code...
View 2 Replies
View Related
Nov 24, 2010
Have to create thread and run it for 5 seconds, then I want to stop. How can I do that? I can't do anything with time/milliseconds.
View 3 Replies
View Related
Oct 24, 2009
How can I stop a background thread on keyboard flip in android?
View 1 Replies
View Related
Jul 4, 2010
I am new to android.At the time of closing application i need to stop the thread in android. Can anyone help me to solve this?
View 2 Replies
View Related
Nov 11, 2010
My application is basically a image viewer. It is opened from both camera and as a separate application.
I open the image viewer to view and edit the picture. Each edit operation is implemented using thread. If my application closes due to pressing the home button, the next time I open it with camera. It throws anr.
This doesn't always happen. Only when large edit operations or edit operations on large image files are done.
I get out of memory error, sometimes timeout.
I guess it s because the thread doesn't complete the edit operation when home is clicked. and it s still running on the background. so when i open it s unable to process it.
m I right?
If so what is the way to stop a thread before the completion?
View 3 Replies
View Related
Aug 17, 2010
To the mod who moved my thread please move it back. It is multi part and fits were I put it just fine.
View 49 Replies
View Related
Jun 12, 2010
In Virgil Dobjanschi's talk, "Developing Android REST client applications" (link here), he said a few things that took me by surprise. Including:
Don't run http queries in threads spawned by your activities. Instead, communicate with a service to do them, and store the information in a ContentProvider.
Use a ContentObserver to be notified of changes.
Always perform long running tasks in a Service, never in your Activity.
Stop your Service when you're done with it.
I understand that he was talking about a REST API, but I'm trying to make it fit with some other ideas I've had for apps. One of APIs I've been using uses long-polling for their chat interface. There is a loop http queries, most of which will time out. This means that, as long as the app hasn't been killed by the OS, or the user hasn't specifically turned off the chat feature, I'll never be done with the Service, and it will stay open forever. This seems less than optimal.
Long question short:
For a chat application that uses long polling to simulate push and immediate response, is it still best practice to use a Service to perform the HTTP queries, and store the information in a ContentProvider?
View 1 Replies
View Related
Jan 28, 2010
If I want to send an event, e.g. OnClick, to an activity from a thread? The expected work flow is below:public class HelloAndroid extends Activity {public void onCreate(Bundle savedInstanceState)Code...
View 4 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
Jun 24, 2010
I have some questions about android ui api.
Give a example, that I want to implement.
Main_UI_Thread.java. code...
I know the message passing can be do that;
But I want the ui program is be implemented in DisplayClass.java. Is it possible?
View 1 Replies
View Related
Sep 27, 2010
How can I kill Android activity from asynchronous thread? In my android application, I start another activity using startActivity. Is there anyway for me to kill that activity I started after several minutes?Or is there any way beside using thread?
View 2 Replies
View Related
Jul 21, 2010
Suppose my activity ui-thread spawns a separate thread at some point. Is it safe for that new thread to fire off an Intent for launching a new activity?
View 1 Replies
View Related
Oct 5, 2010
can someone please help me? I would like to write a program which uses a service to periodically update a text view on an activity. I do this by having ActivityA with a 2 buttons to start/stop my service. In the service I run a timer which triggers every second. From here I need to have this launch and update a text view on ActivityB which at present is just a counter value.I'm sure there are likely better ways to do this, such as using only one activity, maybe using a thread but the main design consideration is to have the service running even if my activity is destoyed (the counter value would instead go trigger some alarm or file write instead of a text view update). Sorry for rambling. I find the android developer resources offer too many solutions!
View 2 Replies
View Related
Jul 23, 2010
I have two activities:
"a" that spawns thread for generating a dynamic array of values inside public void run() function.
"b", graphics activity that will help me draw rectangular pulses based on array values calculated in activity "a" (calculated in a's thread to be precise).
When I am in thread inside "a", how do I pass values of array to activity "b" and
call activity as well.
activity A
CODE:..........
activity B
CODE:..............
View 1 Replies
View Related
Jun 1, 2010
I'm trying to think of a way on how to sync in between a local service and the main activity.
The local service has,
A thread with a socket connection that could receive data at any time.
A list/array with data.
At any time the socket could receive data and add it to the list.
The activity needs to display this data. So when the activity starts up it needs to attach or start the local service and fetch the list. It also needs to be notified if the list is updated.
I think I would need to sync my list somehow so the local service does not add a new entry to it while the activity fetches the list when connecting to the service.
View 2 Replies
View Related
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
Oct 31, 2010
I'm writing a bitmap editor and I'm trying to write an autosave feature. When onPause is called, I write the application state to an autosave file. As this takes between 0.1s and 1.5s, I've been advised this IO operation be performed in a background thread.
In the onCreate method of my activity, I check to see if the autosave file exists and, if it does, I open it.
Are there any scenarios I have to consider where the user can somehow leave the activity, the autosave thread starts and the user can return to the activity before the thread has finished? If so, how can I detect this and wait for the thread to finish before I check the state of the autosave file?
I was going to make it that, when the user backs out of my activity, they're asked to wait a second while the data is saved. This seems OK, but I can't do this when my activity is interrupted by something like a phone call.
Also, I'm a bit confused about how multiple versions of the same activity can be started as this makes dealing with autosaving more complex. Is there a way to make sure only one instance of my activity is allowed to run at a time?
View 2 Replies
View Related
May 28, 2010
A new question about android and services. Currently I'm developing a App that should send images to a server. It should also be possible to send more images parallel. I made a service that creates for every image a new image. The activity can bind to that service and gather information about the progress. I want to show the current status for every image in a notification (and when the user clicks a notification, an activity with the progress for that image should be shown). But I get several problems with that approach. There are errors with binding, the notification pending event starts the activity completely new, so I lose information about currently sending images and so on. How I could design in a appropriate way.
View 1 Replies
View Related
Feb 8, 2010
I am trying to start an error-reporting activty if unhandled exception detected. The problem is with exceptions thrown from main thread. Is there any way to start an activity if main thread crashed?
View 3 Replies
View Related
Aug 13, 2010
In my game when the user completes a stage, I want the main game thread to pause/sleep/wait and a new activity to be launched called StageClear that displays information about points scored etc. After this has been displayed and the user has pressed continue I want the original game thread to resume where it left off. I have tried to implement this but have so far been unsuccessful, probably because I'm new to dealing with multiple threads and also the idea of synchronizing them. I most recently tried to implement a shared package-visible object that could notify after wait was called on itself, but I am getting errors in eclipse so it won't even compile, I think because though the object is declared public in an inner class, it cannot be seen or recognised by my activity elsewhere in a file in the package. I have already built both activities but my issue is getting the main game one to launch the other, and pause whilst it waits for this activity to finish, before the main game thread continues execution.
View 1 Replies
View Related
Sep 26, 2010
There are a ton of activity stack related questions on StackOverflow, but I didn't really see any that answered the question I have. I'm working on an online game that (for now) has 3 different activities Login/Register Menu (seen when logged in, includes "new game", "my stats", and a few other things...I'm just worried about the "new game" option for now.
View 1 Replies
View Related
Jun 30, 2010
I'm trying to write a game engine in Android, but I don't have much familiarity with threads.
My thread has an attribute, mSurfaceHolder, which holds the surface that I'll be drawing to. The run() method for my thread looks like this:
CODE:.............
STATE_RUNNING represents the state when the activity is in the foreground and the game should be running.
STATE_PAUSED represents the state when another activity has come into the foreground. I'm not completely sure why I need to still draw while it's paused, but that's what I seem to have gathered from the LunarLander example.
What I'm hoping is that while I'm looking at the activity, the game will update and draw (which I test by using LogCat). And then when I go back to the home screen or another activity appears over the top, it will just draw.
Well it does draw and update while I'm watching the activity, so the game loop itself works. But when I leave the activity, it has no effect. Here is the thread's pause() method that is called from the activity's onPause():
CODE:.............
As you can see, to test this method I have logged some messages. Now what I find when I leave the activity is that "Here" is logged, but "There" is not. Now with my limited knowledge of threads (I hardly know what synchronized actually does), I believe this will happen because my thread can't get synchronized with the surface holder. But I don't know WHY it doesn't synchronize. A few seconds after I've left the activity, I see the following warning in LogCat:
Activity pause timeout for HistoryRecord
Any idea why this would happen? There are no problems if I try to start the activity again, the thread just keeps running as it was.
Just discovered something else. The thread pauses just fine if I leave the activity within about a second of having started it. And then it will resume and pause again with no problems at all while the same task is still running. I have no idea why for a short period of time it will work, but if I leave it too long, it won't.
Okay... I fixed it. But I don't think I'm supposed to do what I've done. I've basically removed any synchronization with mSurfaceHolder from both the pause() and the setState() methods (which is used by pause()). No it works as it's supposed to, but I'm thinking the synchronization is there for a reason.
Perhaps the best question for me to ask is this: WHEN should you synchronize a thread with an object by use of a synchronized block? And in this case, what is the purpose of synchronizing with the SurfaceHolder?
View 1 Replies
View Related
Mar 25, 2012
I need to call an activity from a background thread . Is it possible to call an Intent from a thread ??
View 1 Replies
View Related
Jun 3, 2010
The android docs say that it adds the runnable to the queue and it runs in the UI thread. What does this mean? So, for example, the same thread I use to create my layout is used to run the Runnable? What if I want it as an independent thread that executes while I am creating my layout and defining my activity?
View 2 Replies
View Related
May 22, 2010
How would I force the current thread to wait until another has finished before continuing. In my program the user selects a MODE from an AlertDialog, I want to halt executing of the program before continuing as the mode holds important configuration for the gameplay.
new AlertDialog.Builder(this)
.setItems(R.array.game_modes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
setMode(TRAINING_MODE);
case 1:
setMode(QUIZ_MODE);
default:
setMode(TRAINING_MODE);
break; ............
//continue loading the rest of onCreate();
contineOnCreate(); } })
.create().show();
If this is impossible can anyone give a possible solution?
View 1 Replies
View Related