Android :: Can Background Activities Execute Code?
Jul 15, 2010Are Activities in the background considered "running" (and can execute code) or are they in a suspended state?
View 1 RepliesAre Activities in the background considered "running" (and can execute code) or are they in a suspended state?
View 1 RepliesI have a problem with my application. During the execution of it, I have some buttons which execute other activities when I click on them. The way I am realising it is:
private OnClickListener scaleImage = new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClass(main.this, Scale.class); startActivity(intent);
update(); }
};
So basically I would like my app to read info from a database, this info would be a string that is valid java code. Once read, I would like my app to execute this string as if it were code. Is there any functionality packaged with the android sdk that supports this?
Essentially I want the phone to populate some data with information queried from a database. One of these pieces of information would be a statement like: "return data.ZombieKillTotal >= 100000;"
Which would be used inside a statement like:
CODE:......
I just don't know what to use for 'ExecStringAsCode':
i want to develop a android application named letC ,the main moto of the app is the user has to write c code and has to execute with in the application.
View 8 Replies View RelatedI would like to know how to execute code before exiting application. My application is composed of several activities. When the user starts the application (from the launcher menu or from a notification in the status bar), he goes in an InitActivity where I process some initializations. From user experience, application always restarts. One of these initializations is to init a network manager and start a thread that periodically sends a network request to notify a server that application is active.
I need to process some end operations, like stopping this thread when user quits application, for example by pressing the HOME key or BACK key when he's in the root activity. However, when the user press the HOME key, application is still running in background.
Q1 : is it possible to execute code when exiting application (I see the onTerminate() method of the class Application but it seems not to be always called)?
Q2 : Is it possible to force application exit (activity method finish () only destroy the current activity, not the application)?
Q3 : Is it possible to handle HOME key press (onKeyDown() is not called when this button is pushed)?
I'm trying to execute code from Android's help page, but it doesn't work for me:
CODE:..........
When I execute task, doInBackground is invoked fine, but onPostExecute is never invoked. Tested on Milestone with 2.1 OS
I have run into an requirement of my application that i cant find a way to do this.
I need my application to be fullscreen and no title bar (done), and this application will have a background image. However, all the activities/views of my application must be transparent/translucent so the application background will be visible all the time behind the information i am displaying.
Basically i would like to have this behavior
http://www.geeky-gadgets.com/wp-content/uploads/2010/05/amazon-kindle-android-app.jpg
supousing that the image you see is not the phone wallpaper, but the application background image. What would be the application configuration in the manifest file and what would be the configuration for eacy activity/view?
I also noticed that, i need to setup each activity to be fullscreen without title bar. Is there a way to do this globaly in the application so all activities will behave this way?
I have an app with two activities.
Both activities among other functions have to perform the same calculation on data, so each activity include the same code to perform the calculation.
Is it possible to only have the similar code in a separate activity and be accessed by the other two activities instead of duplicating the code twice?
I am using a TabActivity (Main) with 3 TabSpecs
I am using Intents for the content of the 3 Tabs
TabA, TabB, TabC for example.
All these tab activities use common data that is stored in SharedPreferences
In the Main TabActivity I have an options menu which has a refresh option.
CODE:.............
This refresh uses an AsyncTask (updateCommonDataFromWeb) to reload the common data from the web.
I need a way to tell the 3 tab activities to refresh their views and rebuild their content from the newly downloaded data.
When the tab activities are first created they load the data from SharedPreferences like so:
CODE:..............
I thought about making a common method on each of the tab activities
like.... reloadViewData()
I thought maybe I could use the activity manager from the Main TabActivity to get the activity of the current tab like so:
CODE:.............
Unfortunately i cant get this approach to work, whilst activity is the correct instance its an Activity instead of a TabA,TabB or TabC
Maybe i've completely taken the wrong approach to the whole thing.
I have also read alot about not using Activities for tab content instead using views.
However I dont know what view to use to replace my <RelativeLayout /> as i cant use my R.layout.* as views.
I want to know that how i can get these things in android.Recording of Calls Appointment/Calendar Logging Bookmark Logging Browser History Logging Contact Details Location Through SMS SIM Change Notification and after getting these things in a file (.txt, xml, or CSV) how i can upload these things to my php server by running a backgroud service.Service will now prompt user again and again. Everything will be recorded silently and then user will see this information on server whenever required.
View 2 Replies View RelatedI have an Android application composed by several Activities. Most of them need to check whether an active network is available or not:
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
...
}
I would like to move that code to a helper class in order to avoid the need to write that code in every Activity, but calls to getSystemService are only allowed from an Activity. The other alternative is to move that code to a parent activity use inheritance but:
Every activity already extends from android.app.Activity
Some of my activities already extend from a common my.package.BaseActivity
(Activity <- BaseActivity <- XXXActivity)
What do you recommend in this case? Is there any other alternative?
The official documentation describes tasks as follows: All the activities in a task move together as a unit. The entire task (the entire activity stack) can be brought to the foreground or sent to the background. Suppose, for instance, that the current task has four activities in its stack three under the current activity. The user presses the HOME key, goes to the application launcher, and selects a new application (actually, a new task). The current task goes into the background and the root activity for the new task is displayed. Then, after a short period, the user goes back to the home screen and again selects the previous application (the previous task). That task, with all four activities in the stack, comes forward. Is there a way to programmatically detect when the task of the current Activity moves into and out of the background? I would like to know when the user has switched switched to another application, vs. when the user navigated to another Activity in the current app.
View 2 Replies View RelatedI am designing an app that will have some activities separated in tabs. Some of them will have to perform tasks in the background will the user is in another tab. What is the best strategy for designing an app like this? I was thinking about using a service but it can be killed by android dalvik, isnt it?
View 1 Replies View RelatedI've got a common task that I do with some Activities - downloading data then displaying it. I've got the downloading part down pat; it is, of course, a little tricky due to the possibility of the user changing the orientation or cancelling the Activity before the download is complete, but the code is there. There is enough code handling these cases such that I don't want to have to copy/paste it to each Activity I have, so I thought to create an abstract subclass Activity itself such that it handles a single background download which then launches a method which fills the page with data.
This all works. The issue is that, due to single inheritance, I am forced to recreate the exact same class for any other type of Activity - for example, I use Activity, ListActivity and MapActivity. To use the same technique for all three requires three duplicate classes, except each extends a different Activity.
Is there a design pattern that can cut down on the code duplication? As it stands, I have saved much duplication already, but it pains me to see the exact same code in three classes just so that they each subclass a different type of Activity.
Edit: Since it seems I need to be a bit more specific...
Suppose I'm trying to solve the problem of an AsyncTask background download during orientation changes. The solution I have right now is to use callbacks; there's download manager that I have which starts these downloads, and then I have the Activity attach a callback to it. When the orientation changes the Activity is destroyed and then recreated; during this process I detach the old Activity's callback, then attach a new callback from the new Activity afterwards.
Orientation changes are a common problem, and in multiple Activities I start the Activity with a progress view while the data loads. What I am trying to solve is not having to re-implement this orientation-handling logic ten times over; my initial solution was to subclass Activity, but then I got the problem above.
When I'm back from the background, onResume() method is called. Okay. So if I want to do some special code when I'm back I can put it there.
What about if I've many activities ? Do I've to duplicate that code everywhere ? Should I used the Application class and call a method in each onResume() methods ?
Plus, I would need to access the UI (changes, dialogs, ...). Maybe the application class isn't that a good idea ... ?
Concretely, I want to refresh my cache every XX time and I want to do that check when the application (or activity) is back from the background but I don't know exactly how to do and where to do that.
I want to set current wallpaper as my application background . Any ideas to do it through XML or Java code ?
View 3 Replies View Relatedhow to call BarCodeScanner, and return the value to a field.so now, i have a toast that says "successful scan" and then i want to pass the result to a new activity. when i comment out my intent, everything works (minus the passing of data/switching of screen, obviously) but when i run my project as is, it FC's no errors reported by eclipse in code or xml. any insights?
View 2 Replies View RelatedOf course i don't know google's plan. i just hope it. through emulation though.
how about android-sdk for chrome application? the idea is just recompiling to make execution file for google chrome os.
how about the sdk for windows? it's for windows platform.
I do a ((Context)thingy).bindService(...) from within the onCreate callback of an Activity. I've observed that the onServiceConnected() callback of my associated Service Connection does not execute immediately, but rather, is delayed until after the Activity resumes, or more precisely, after return from the onResume() callback of the Activity. I discovered this the hard way (through a null pointer exception) because I was unable to use the Service (I call a method in the Service to start a Thread) immediately upon return from the bindService () call.
I assume this is normal behavior, but I don't understand why, and I further assume that there is a good reason for it and that I would benefit from understanding it. I'm guessing that maybe the Service isn't eligible to run because there are fewer than 1 processes bound that are in an active state.(?) But once it starts, if I then start the Thread within, it continues to completion of its task, even if the Activity calls unbindService() and terminates first! I don't mind that behavior (it's what I want to happen), but I want to know whether I can generally rely on it. I'm seeking some wisdom from the forum. Please help me clear my fog on all these points.
There is a user input then on submit pass the search keywords to the db server and return the results (the db server has to be external by the way). Could i pass the search query to server side (php) and get the php script to execute the queries and return the scripts output?
View 3 Replies View RelatedI would like to execute opcodes directly against the running Dalvik VM instance from within my application on Android. I'm looking for something similar to the C asm function. I have a list of opcodes for dalvik, but I am unfamiliar with how to either execute them directly, or write them out to .class files and execute them against some sort of VM CLI command like dalvikvm from within a running application.
View 2 Replies View RelatedI've been doing Android application development for Android 1.5 on Debian etch (4.0), and things were going okay. I then tried upgrading the SDK to support more recent platforms. The problem is that the vast majority of the tools that are executables (I'm not counting shell scripts) seem to now depend on glibc >= 2.4. When trying to execute them, or passing them to ldd, I get an error like:
./aapt: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./aapt)
On Debian, the file /lib/tls/i686/cmov/libc.so.6 is provided by the libc6-i686 package, which on etch is version 2.3.6.ds1-13etch7, but on lenny I see that the version has increased to 2.7-18.
I can think of a few workarounds: - Copy the required libraries from a supported platform and point to them with LD_LIBRARY_PATH when using the affected executables. - Download the sources for the tools (e.g. http://android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;...) and build my own local versions for Debian etch. - Give up using Debian etch and switch to another platform.
All of these are potentially viable alternatives for me, so this isn't a show stopper, and indeed http://developer.android.com/sdk/requirements.html says that it's only tested for GNU/Linux on Ubuntu Hardy Heron, which uses version 2.7-10ubuntu5. Nevertheless, it's somewhat annoying, and I'm wondering if anyone has any thoughts, or if the Android team even knows of the issue. I'm guessing that sometime in the transition from 1.5 to 1.6, they switched from an earlier Ubuntu version (I have to go back to Dapper, which uses 2.3.6-0ubuntu20.5, to find a pre-2.4 version) to Hardy, and this was just a side effect. But I'd be surprised if there was anything specific in the source that really required libc 2.4, and it's possible that if they were just building with an appropriate compiler flag that backwards compatibility could be maintained.
This affects all platform-specific tools for platforms >= android-1.6 (so aapt, aidl, and dexdump), and it affects all platform-agnostic tools (except for hprof-conf and mksdcard; so adb, dmtracedump, emulator, sqlite3, and zipalign) installed with the new modular sdk download (android-sdk_r3-linux.tgz) available starting in the android 1.6 timeframe (the corresponding tools from the android 1.5 timeframe in the monolithic SDK download of android-sdk-linux_x86-1.5_r3.zip work fine).
I have a service MyService.java in Application "ServiceDemo". The manifest of this application looks like this
CODE:.............
I have another application "CallerService" manifest looks like this
CODE:................
I have an activity from where I m trying to start the service on the click of the button
CODE:................
This fails to work. Says "unable to start service intent"
I need to customize the launcher application. I built it from the android source, and installed it to the emulator successfully(By renaming its package name to solve signing conflicts). When I tried to run my build, an exception occurred, and I can't find where it actually from because it seems to be from an internal thread.After an whole day trying, I found that the exception is thrown by the line in Launcher.java possibly: setContentView(R.layout.launcher)Does anyone have any suggestion?
View 9 Replies View RelatedI need to execute following command in my app.
command: echo "1" > /sys/manager0/enable
I tried this with following code in my app.
Process p = Runtime.getRuntime().exec("su");
DataOutputStream stdin = new DataOutputStream(p.getOutputStream());
String cmd = "echo "1" /sys/manager0/enable";
stdin.writeBytes(cmd+"
");
There is no error and app executed perfectly but there is no change in the /sys/manager0/enable
I'm working on a G1 rooted. I have to implement program that execute "Root Explorer". I have write this code:
Process p;
try { p = Runtime.getRuntime().exec("su");
// OK DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("echo "HELLO!!!!!!!!" >/system/test.txt");
os.writeBytes("exit"); os.flush();
// ERROR File dir = new File("/data"); String [] list = dir.list();
Log.v("TEST]", String.valueOf(list.length));
try { p.waitFor(); int exit = p.exitValue();
if (exit != 255) { Log.v("TEST]", "ok");
} else { Log.v("TEST]", "Error");
} } catch (Exception e) { Log.v("TEST]",e.getMessage());
} } catch (Exception e) { Log.v("TEST]",e.getMessage());
}
I use Superuser.apk for execute "su" command. My program write file test.txt in /system but statement Log.v("TEST]", String.valueOf(list.length)); return value 0.
I am trying to upload a image file to server and get back a JSON Object. But an IOException was thrown out. Following is my codes, can anybody have a look at them?
CODE:.....................
I am using sqlite db in my app. i am able to create db and table and execute queries. But I wanted to know where is the sqlitedb created, so that I can check them from commandine. where doed that android store ? I searched, could not find anything on that name in my pc, does android encrypt the name of the db file ?
View 11 Replies View RelatedThere are all of these app's out there that allow you to control your computer from your phone (using VNC and others). This is all well and good....but there are no shortcuts to do anything on these apps. Whatever you are trying to do on your computer takes way too many screens/clicks to be truly efficient by using your phone. You most certainly are able to do it with your phone.....but hell...it was way more complicated than it had to be.
DOES BELOW APP EXIST?
I would LOVE to just touch a shortcut on my home screen that would send a couple of keystrokes to my computer. Or telling my computer to open a particular program from a shortcut created on my android phones Home screen. This would be amazing. I could tell my computer to run whatever task from my phone QUICKLY...without having to jump hoops through screenshots/mouseclicks/keyboard on VNC app's......
Using this, you would no longer need all these separate video/music player control apps...you could just wire hotkeys/scripts to be run to control ANYTHING. I could send a keystroke to minimize/maximize a window....pause iTunes....Give a song 3 star rating....open a particular site...
I'm just trying to turn my phone into a much better remote for my computer.....all current apps seem to fail horribly.
I have a gridView that I display in a popupwindow (the gridview is in a transparent layout, which inherits from linearlayout and just has a partially transparent background). I can never get this GridView's OnItemClick to execute. When I touch an image in my gridview it appears to be clicked (image bachgrond changes), but OnItemClick is not being called.
Below is the code for my Adapter and my popupview containing the gridView.
CODE:................