Android :: Problem Long Running AsyncTask With Reference To Activity
Jul 24, 2010
I have an AsyncTask that scans the file system and publishes progress through Notifications. To do this I need a reference to the current Activity in the AsyncTask.
I also don't want to kill the task when the activity is destroyed. How do I avoid leaking the activity and everything it references on each configuration change?
One possibility is to remove the reference in OnPause() to be sure it is gone when the Activity is destroyed, but that would mean notifications stops coming as soon as you leave the activity which is no good.
Isn't there a recommended way of dealing with AsyncTasks in this way?
View 12 Replies
Apr 28, 2010
What happens on Activity.finish() with an AsyncTask still running in background?
Does it just pop the Activity off the Activity Stack, but wait to destroy the Activity object until the AsyncTask fully completes (since the AsyncTask is an inner class of my Activity)?
Also, would it act any differently if the AsyncTask were a public, non-inner class that held no references to the instance of the Activity?
View 1 Replies
View Related
Jul 28, 2010
I'm trying to figure out the correct way to create an AsyncTask to retrieve some data from the internet and then to take that data and bundle it up in an Intent and pass it to a new activity(A list display). So in the first activity I just have an EditText and Button. In the event of an OnClick the task should be called and when it is finished the data should be bundled inside an Intent and passed to the next Activity. The problem is when I take the results from onPostExecute and set them to an instance variable of the main activity, that instance variable is still null when the task is complete. Here is the barebones version of the code:
CODE:...........
When I debug the application I see onPostExecute does contain a valid PlacesList full of results, so why is the instance variable places set to null after the task is executed? I am going about "returning data" from an AsyncTask incorrectly?
View 1 Replies
View Related
Sep 24, 2010
I am Developing an App that parses data from HTML. One of the data that is parsed is an integer that increases over time and rather than constantly requesting the data I would like to have a task that intervals the integer. Due to the fact that I need the value updated into a TextView I decided to go with an AsyncTask rather than a Timer.
My issue is I want to be able to restart my task once I know that it has finished, or if it is currently RUNNING simply avoid manipulating it.
Here is my AsyncTask:
CODE:.......
My attempt to start or avoid:
CODE:................
Am I going about this correctly?
View 1 Replies
View Related
Aug 9, 2010
I know this is not how an async task should behave but my question is how to "block" the user while executing it.My need is the following: I have my own backup/restore process and I have an async task to run these two actions. The backup is fine, I can warn the user when the backup is done and that's just fine But my problem is about the restore process. When the user click on restore he shouldn't be able to make any change in the application (and anyway don't want to because he would lose all his changes).I understand that having the user blocked while restoring (or maybe with a progress bar) is not a best pratice but I do not see any other possibility in this context.
View 7 Replies
View Related
Oct 28, 2009
I have a custom view that needs a reference to the activity that created it.Dianne Hackborn said in another thread: >Give your view a reference to the activity (or a Java interface it implements) and call back through that. >Much much MUCH more efficient than sending a broadcast. >See all of the standard view and view subclass callbacks for examples.
View 9 Replies
View Related
Jun 17, 2010
Would it be there noticeable speed improvement if I would create local references to needed view elements (e.g. EditText or Button) in my activity (in onCreate()) and use them for accessing needed elements or it does not much matter if I always use findViewById() when I need to access some particular element?
View 2 Replies
View Related
Oct 30, 2010
So say there's an app running (any app). I'd like to be able to get it's Activity from within a Service that will be triggered to run from a android.intent.action.SEARCH_LONG_PRESS.
Is this possible?
View 1 Replies
View Related
Feb 18, 2010
private class ExecuteLocations extends AsyncTask<String, Void, Void>{
private final ProgressDialog dialog = new ProgressDialog(ListProfiles.this);
protected void onPreExecute() {
//this.dialog.setMessage("Starting pre-execute...");
//this.dialog.show();
} @Override protected Void doInBackground(String... arg0) {
check_profiles_lm=(LocationManager) ListProfiles.this.getSystemService(LOCATION_SERVICE);
myLocListen = new LocationListener(){
@Override public void onLocationChanged(Location location) { HashMap params = new HashMap();
params.put("lat", Double.toString(location.getLatitude()));
params.put("long", Double.toString(location.getLongitude()));
postData("http://mydomain.com",params);
} @Override public void onStatusChanged(String provider, int status,Bundle extras) {
} @Override public void onProviderDisabled(String provider) {
} @Override public void onProviderEnabled(String provider) {
} };
check_profiles_lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30000, 0, myLocListen);
return null; } protected void onPostExecute(final Void unused) {
if (this.dialog.isShowing()) { //this.dialog.dismiss();
} //Do something else here
} }
Basically, my objective is:
Constantly post the latitude/longitude to my website every minute or so. Of course, I want to do this in another thread, so it doesn't mess up my UI thread. This AsyncTask is supposed to solve that but it's bringing up an error and I don't know why. What can you do to accomplish my objective? It's very simple...just scan location and post to web every minute, in the background. By the way, my onCreate method is like this. That's basically it.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new ExecuteLocations().execute();
setContentView(R.layout.main_list);
}
View 2 Replies
View Related
Mar 27, 2010
I have an AsyncTask object which starts executing when the activity is created and does stuff in the background (downloads upto 100 images). Everything works fine but there is this peculiar behavior which i'm not able to understand.For eg: when the android screen's orientation changes then the activity is destroyed and created again. So I override the onRetainNonConfigurationInstance() method and save all the downloaded data executed in the AsyncTask. My purpose of doing this is to not have AsyncTask run each time activity is destroyed-created during orientation changes, but as i can see in my logs the previous AsynTask is still executing. (The data is saved correctly though)I even tried to cancel the AsynTask in the onDestroy() method of the activity but the logs still show AsynTask as running.This is really strange behavior and would really be thankful if someone can tell me the correct procedure to stop/cancel the AsynTask.
View 1 Replies
View Related
Jul 20, 2010
I want to have a class "Utils", that will have several methods used all over my code. For example, I have a top bar with a textview and two ImageButtons that must display different texts and icons on different activities.I created the class Util, but it doesn't extend Activity. The problem is that if it doesn't, findViewById isn't there, can't find stuff etc.
View 1 Replies
View Related
Mar 9, 2009
I want to pass a class reference to an activity, and then the activity will construct the view according to the content of the class.
How could I implement this function?
View 3 Replies
View Related
Sep 10, 2010
I am using an AsyncTask to fetch the ring tone for a contact when my application starts, it works fine until after my Activity closes a couple of times during the AsyncTask, after this happens the AsyncTask will only ever get to onPreExecute() and never doInBackground, so I can never fetch the ringtone then until either a force stop or device restart.
Why this might be happening? Why the AsyncTask would get to onPreExecute but then never run doInBackground()?
Here is my code: (Following the Shelves source code)
CODE:.....................
And onAddRingtone() is used in onCreate and onCancelRingTone() is used in onDestroy() as well as where you can see if in the code above. I have spent 3 days on this and I haven't been able to find a solution? Am I taking the wrong approach? Using cancel wrong? Is there a bug?
View 1 Replies
View Related
Nov 3, 2009
I've got a tab host activity started from a home screen shortcut. When my application starts it downloads information from a server using an AsyncTask. In the onPostExecute method of the AsyncTask I call setContentView to display the TabHost.When I start the homescreen shortcut by tapping on the shortcut using my finger everything works as expected, I download the information from the server and display the TabHost with the information in the tabs. However starting the application by navigating to the shortcut with the mouse wheel and then clicking on the shortcut with the mouse wheel leads to a trap in the framework code as soon as my application starts. This looks like a simple fix since mCurrentView is null at the time that this method is called - can this issue be addressed? Does anyone know of any workarounds?
View 5 Replies
View Related
Jul 27, 2010
I have an app that has a service with it. This service is started the first time you open the app is is suppose to run continuously in the background every two minutes. It seems that at some point though the service stops running or alarmManager stops scheduling/doing what is requested of it. Here is a breakdown of my code flow.
User opens the app,. Service is started, Inside the service I cancel any alarms that might be for this app then create a new one set for two minutes out, Once the alarm is set I call a GPS location check to get lat/lon, I then call up a .net web service to do some stuff with the lat/lon, Once text is returned I check that text for certain Items, If a certain item is found I send a broadcast out to a receiver that then creates a wakelock, starts a new intent to open an activity of my app then sounds an alarm, Right after I broadcast I call stopSelf() as well as calling stopSelf() if the text did not contain certain Items, I call finish() on the new activity I started if we go that far once the Active screen of my app is closed.
The reason I think something is dieing out here is because after some point in time usually once I wake up in the morning and check the phone I no longer see my GPS icon on my droid checking every two minutes.
View 2 Replies
View Related
Nov 9, 2010
I am doing an application in android which requires to know for how long the application is running. Do anyone know how to retrieve such information??. Is there any way where android provides the information about the running applications ,from how much time they are running?
View 3 Replies
View Related
Sep 21, 2009
I'm planning to use the JavaScript interface to Java, to connect to Java methods that go to the network (or some other long-running function) and deliver the results via callback.
The flow is: 1. User clicks on a link in the WebView, which calls my Java code. 2. My Java code posts a worker Runnable to a Handler, and returns immediately. 3. The worker goes to the network, then makes a callback to the WebView.loadUrl("function('result')") to deliver the result.
I made an example that sleeps inside the Runnable. The entire WebView becomes unresponsive! What is the proper way (if any) of implementing a long-running JavaScript call?
Is it safe to call loadUrl() from multiple threads?
View 4 Replies
View Related
Sep 26, 2009
How to programmatically stop a long-running query?
The long-running step is, for example, the first call to Cursor.moveToFirst(). This can sometimes take up to 30 seconds so I would like the user to be able to cancel.
However, how should this be done? I've tried closing the Cursor (in another thread) but all that happens is that the close() call takes as long as moveToFirst() and then terminates with the exception:
java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable
View 10 Replies
View Related
Jan 10, 2010
I created an application which enables the user to set whether he wants to receive notification while the application runs in background mode. If the notifications are enabled an activity should be started (the dialog should appear on the screen).
I tried to enabled it the following way:
CODE:...........
This is the method from main activity. When onPause() is executed isRunningInBackground is set true.
When I tried to debug it when the main application was running in the background the line
startActivity(intent) had no effect (the activity didn't appear).
Does anyone know how to midify the logic in order to start an activity from the main activity when the main activity is running in the background (after onPause() is called)?
View 1 Replies
View Related
Jul 16, 2010
I used Toast to make notification, but it seems it will appear even its activity is not in the current screen and some other activity has been started.I want to check this situation, when the activity is not the current one, I'd not send the Toast notification. But how to do ?
View 1 Replies
View Related
Aug 11, 2010
I JUST had to restart my phone for the first time (some weird lagging started). It had been running since two days after launch (when I received it from letstalk.com)
View 2 Replies
View Related
Nov 11, 2009
By default, if we long press search key it opens quick search box with the keypad slided up. what should be done if I want to change this default action to launching of an application when ever search key is long pressed. This obliviously requires changes in the framework. i tried changing some code in Search dialog.Java file but we can't use Start Activity there. pls guide.
View 2 Replies
View Related
Dec 10, 2009
I have an activity which overrides the onKeyDown method. The documentation states the following about onKeyDown: "Called when a key was pressed down and not handled by any of the views inside of the activity." The problem I have is that this method is being called even when the views inside the activity handle it. I have a button implementing a longPress listener. What I see on debugger when long clicking on the button with the center key is that first onKeyDown from the activity is called then the longPress listener from the button gets triggered. Even for Textviews, when long clicking on it with the center select, the activity onKeyDown gets triggered before the TextView processes the longclick (and shows the Input Method context menu).
View 5 Replies
View Related
Jul 27, 2009
Finally after many days of getting StackOverflowError, I've tracked down the issue and fixed it, only to find that my game's serialization takes about 5 -10 seconds on the emulator and most likely around that in the target. So far my the lifecycle of my game is as follows
onCreate - check if serialization file exists, if it does, de- serializes it. (~ 5-10 seconds) onPause - if the game is not complete, then serialize it (~ 5-10 seconds) I remember reading somewhere that another activity's onResume will NOT get called UNTIL the previous activity's onPause has ended. So I am worried that my game is delaying another activity that wants to start from doing so i.e like a phone call etc. I think speeding up the serialization is not going to be feasible, so any ideas on what I can do? Can I serialize in the onDestroy instead of the onPause? I read that the onPause is the only safest place to store the state.
View 8 Replies
View Related
Oct 18, 2010
I have list activity with custom array adapter and I can't to get context menu when make long press on list item.
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
Why I do not see context menu? What I do wrong? How to get context menu with array adapter and ListActivity.
View 1 Replies
View Related
Aug 21, 2012
Within the last week my tablet stating running very slow.
Pages take a long time to load Apps take forever to load Apps crash every other time I open them.
I thought it was my router (netgear n600) but my iPad and cell phone.
View 13 Replies
View Related
Mar 24, 2010
I have an Activity that keeps running after the Home button is pressed (naturally) and of-course the focus is in the home screen, and when the running process ends I need to restore the focus on that activity. In more PC expression, I need to maximize the application.
View 1 Replies
View Related
Jul 15, 2010
I want to show a progress dialog on the screen if the activity is showing. But when the activity window is not showing, it will not do anything. Please suggest, how do i check whether my activity is showing or not?
View 2 Replies
View Related
Jan 20, 2010
I have a app that needs to run a command even if the phone goes to sleep. I have it running as a service but it runs randomly when. Is there a way to have the service run even when the phone is sleeping.
View 3 Replies
View Related
Sep 13, 2010
I'm trying to create a program with a service that runs every 10 seconds, puts the camera preview, taking a picture and then leaving the user to continue his work (closing down). Currently I have two problems:
1. After I'm taking the picture, the preview still there. There's no function like close() to return to the previous activity. How can I return to the previous activity?
2. I'm trying to run the above described activity from the run() function (from the timer class that execute the run() function every 10 seconds). When I do that, a runtime exception is raised. But when I start the above described activity from a button clicked (not from the timer) it works fine.
View 4 Replies
View Related