Android :: Correct Use Of TaskAffinity & LaunchModes ?
Sep 28, 2009
My android app contains a suite of mini apps. In short, the main screen contains several icons, one each for the mini apps. When an icon is clicked, the mini app is launched.
In total I have 4 mini apps. So you could imagine that my main screen is like the Home Screen Launcher. Although these mini apps could run standalone by their own, I want the user to be authenticated. Thus there is a LoginActivity right before the MainActivity.
CODE:.........
I'm still not pretty sure of the benefit of Tasks (arranged set of Activities), so I would like comments from Android experts on my design decisions:-
(1) I plan to set the attribute finishOnTaskLaunch to true for LoginActivity. As I understand it, once the login is authenticated, I will navigate the user to MainActivity, and I want LoginActivity to disappear. Is this better than calling #finish on the Activity ? Will MainActivity automatically become the root of the Task without any extra configuration/code ?
(2) One of the mini app is an IM client. The PresenceListActivity will hosts many instances of ChatActivity (one-to-one chat session with an active contact in the buddylist). I plan to use the default launchmode for ChatActivity since each Chat should be handled by a new instance. Sounds correct ?
(3) A sticky navigation bar will exists in the top corner of AppOneActivity, AppTwoActivity etc.. I plan to set the clearTaskOnLaunch attribute to true for all of them. As I understand it, I should clear the stack whenever I plan to launch into any of the mini apps. Also their launchModes will be singleTask. Am I on the right path ?
(4) Finally I don't really understand how to read the output of adb shell dumpsys activity. For example
CODE:.......
Sometimes underneath the Tasks, you will see History and in others Running, what do these mean ? Even stranger, sometimes I have two History under a task.
View 1 Replies
Jun 9, 2010
I have a problem about taskAffinity of Activity. Activities A and B with the same taskAffinity.
A starts B with FLAG_ACTIVITY_NEW_TASK and the B starts A with FLAG_ACTIVITY_NEW_TASK again. Dumpsys activity of system gives us task stack like below: TOP-> A B A
According to SDK's reference to FLAG_ACTIVITY_NEW_TASK, the result is supposed to be like below: TOP -> A B
If we did not set taskAffinity, A will not be created again but in different task stack from B. (A and B are in different Apps)
After a little more research, we found FLAG_ACTIVITY_REORDER_TO_FRONT is what we want.
My question is whether SDK' reference to FLAG_ACTIVITY_NEW_TASK is wrong?
View 8 Replies
View Related
Jan 9, 2010
In a number of questions (like this one) I have been looking into how to "change screens" in my app. I have a "header" on top, with 4 buttons. Each button is meant to replace the "content" (ie change screen):
+--------------------+
| menu with buttons |
+--------------------+
| |
| |
| C O N T E N T |
| |
| |
+--------------------+
When I click a Menu button, I run the following code:
CODE:..............
As you can see, the startActivity is executed. Now, if I do not specify "launchMode" for the Activity that means that launchMode = normal. If launchMode == normal that means that the Activity will be re-created each and every time I navigate using the top header buttons, and that means that all data entered in "form elements" are gone (or at least hidden).
So, I found the launchMode "singleTask" that sounded sort of nice. If I add that launchMode to my Activity, it will not be re-created when I navigate with the buttons, thus keeping state. Great! Well, until I read this:
As noted above, there's never more than one instance of a "singleTask" or "singleInstance" activity, so that instance is expected to handle all new intents.
I found out that the sentence mean that there can be only one Activity that has the launchMode set to "singleTask" - if I have more than one it wont work (no compiler error though).
This means that I can only "keep the state" for one Activity, when switching back and forth (navigating) between my screens!
View 3 Replies
View Related
Nov 14, 2010
I am trying to get phone's correct timezone. I tried String newTzID = Calendar.getInstance().getTimeZone().getID(); This is returning "America/Atikokan". But my phone's timezone is EST. Both of these have an offset of GMT -5 hours. But I actually need to differentiate between EST and "America/Atikokan", since "America/ Atikokan" doesn't have day light savings time. Is there a way to get the correct id?
View 2 Replies
View Related
Oct 18, 2010
How to use titanium. Backup. Correctly.?
View 2 Replies
View Related
Aug 19, 2010
I am trying to add an object to an arraylist but when I view the results of the array list, it keeps adding the same object over and over to the arraylist. I was wondering what the correct way to implement this would be.
CODE:..............
I have double checked my JSONArray data and made sure they are not duplicates. It seems to keep adding the first object over and over.
View 2 Replies
View Related
Feb 16, 2010
Code...
This would start a new activity, and then close the current Activity forever, right?
View 1 Replies
View Related
Jul 15, 2010
I have used the algorithm on http://www.movable-type.co.uk/scripts/latlong.html to find the distance between two points.
My two points are
long1 = 51.507467;
lat1 = -0.08776;
long2 = 51.508736;
lat2 = -0.08612;
According to Movable Type Script the answer is 0.1812km
My application gives the result (d) as 0.230km code...
View 2 Replies
View Related
Nov 24, 2010
I tried Hello goolge map tutorial and not able to viewthe map. I signed up for API key. I am using Eclipe which is installed in "d drive" used following command to obtain MD5 fingerprint fom bin folder of jdk
c:program filesjavajdk 1.6in> keytool -list -alias androiddebugkey -keystore "C:Documents and SettingsOwner.androiddebug.keystore" -storepass android -keypass android
Got this fingerprint: 21:17:B1:D8:01:BD:F2:5A:9F:C9:A3:01:96:FA:9A:5B
Used this to find API key and got this: "0Gm7C3R3R2K1pmQGuGkS0rx582TWJEBdJwryFrA"
Used following code in layout
CODE:.......
Still map is not displayed.
Log Cat error log
CODE:..................
My manifest file:
CODE:........................
View 2 Replies
View Related
Nov 11, 2009
i am running the mapdemo application in the samples of SDK. i have set the MAP api key and set the permissions(INTERNET, FINE, COARSE) Then also the map is not displaying on the emulator (only just Tiles).
View 11 Replies
View Related
Jun 15, 2010
When trying to process this png image, webkit displays it blurry.
View 2 Replies
View Related
May 17, 2010
I'm writing a live wallpaper, and I'm forking off two separate threads in my main wallpaper service. One updates, and the other draws. I was under the impression that once you call thread.start(), it took care of everything for you, but after some trial and error, it seems that if I want my update and draw threads to keep running, I have to manually keep calling their run() methods? In other words, instead of calling start() on both threads and forgetting, I have to manually set up a delayed handler event that calls thread.run() on both the update and draw threads every 16 milliseconds. Is this the correct way of having a long running thread?
Also, to kill threads, I'm just setting them to be daemons, then nulling them out. Is this method ok? Most examples I see use some sort of join() / interrupt() in a while loop. I don't understand that one...
View 1 Replies
View Related
Jun 16, 2009
I want to develop an application for input device(bluetooth). I would like to use HID profile or SPP. But Android SDK support only A2DP and AVCRP profile. I'll have to wait until the next version is released. I have one question. I think A2DP, AVCRP profile use SPP. is correct? If so, we can use SPP instead of A~~ profiles? I don't know bluetooth api.
View 2 Replies
View Related
Jul 29, 2010
I'm venturing into startActivityForResult for the first time and I'm running into a problem.When a user clicks on a list item of Activity B, it returns "ql_id" to Activity A:Unfortunately, extras.getInt("ql_id") evaluates to "0". Why is this? It should be "1". I am clearly doing something incorrectly.
View 1 Replies
View Related
Nov 24, 2010
I found that it is possible to set dimensions of my interface elements in XML layouts using DIPs as in following fragment : "android:layout_width="10dip" But all Java interface takes integer as arguments and there is no way to specify dimensions in DIPs. What is the correct way to calculate this? I figured that I have to use property density of DisplayMetrics class but is this a correct way ? May I rely on that formula:
pixels * DisplayMetrics.density = dip
View 2 Replies
View Related
Oct 13, 2009
I am trying to design my first Android application with the use of GPS. As of right now, I have a drawable button that when clicked, alerts a Toast message of the longitude and latitude. I have tried to use the telnet localhost 5554 and then geo fix #number #number to feed in values but no results display just 0 0. I have also tried DDMS way of sending GPS coordinates and I get the same thing. My question is what exactly is the correct way of using the geo fix and the DDMS way of sending coordinates. I have used Location, LocationManger and LocationListener but I am not sure which is the right choice. Code...
View 2 Replies
View Related
Oct 2, 2010
I was wondering if anyone knows how to fix this problem. My temperature is not correct, it says its 13 degrees out and its in the 60s. Is there a way to fix this or should I just uninstall and reinstall.
View 4 Replies
View Related
Aug 22, 2010
I'm having a struggle understanding why my intent is not working. I basically just copied paste from other examples in my code that work perfectly like this. Here it is:
Intent addIntent = new Intent(v.getContext(), thenNnowMode.class);
Bundle w = new Bundle(); String activityName = "addPic";
w.putString("activity", activityName);
w.putParcelable("bitmap", selectedDeviceImage);
//a.putString("id", picId); addIntent.putExtras(w);
startActivity(addIntent); finish();
The intent is opening a different class called thenNnow.class instead of thenNnowMode.class and I have no idea why this is happening. I've tried sending the intent to open other activities other than thenNnowMode but it always opens thenNnow. Am I missing some silly syntax mistake? It's so strange, its the same code. I am not sure if it's relevant but the thenNnowMode class uses the device camera
View 23 Replies
View Related
Jan 22, 2010
I'm currently working with a two-activity application. The first activity allows the user to choose options for their upload, and the second activity displays a ListView of their results once processed.I have code in place that performs the uploads/downloads in the background, regardless of whether the application is currently in focus or not (thanks to Matthias Kaeppler's Droid-Fu).I would like to have my application Resume into my second (results) activity when a user clicks on the icon from the top-level launcher, regardless of how long they have been away from the app. I thought that the 'alwaysRetainTaskState' flag in the Manifest would do it, but I've not had success with that. Can anyone tell me how I need to set up my Manifest to get this functionality?
View 19 Replies
View Related
Oct 14, 2009
I can see that we can get a phonestate via the PhoneStateListener, but there is no way of telling the state of the call. OFFHOOK is a number of states combined into one. Is there a particular reason for this? Are we not allowed to see the correct state of a call?
View 2 Replies
View Related
Apr 17, 2010
I am to display the list and store the selected items in an array. But I am not able to get the correct items that were selected. Here whenever the user clicks an item, the array is getting updated, irrespective if the user is clicking the item to select it or deselect it. Could some one please help me solve this. I could actually perform an iteration to remove the odd numbered items in the array but I feel that would become an overload on the phone. Is there something for efficient. Please advise.
public class MainActivity extends ListActivity { TextView selection; String[] items={"sodium", "O2", "C02", "HCL", "NaCl", "H2So4", "O3", "Ag"}; String names[] = new String[10]; static int i=0; int posarray[] = new int[10]; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items)); .........
View 2 Replies
View Related
Sep 20, 2010
Anybody have any idea why my contacts which are also my FB friends have birthdays listed in the People Profile a day before their actual birthday? When I look on their FB profile, the date is correct. When I look in their contact info in my phone, its a day off. And how would I go about fixing it b/c I can't edit FB information for other people?
View 2 Replies
View Related
Jul 1, 2010
I have an Activity, which contains a bunch of check boxes and a submit button.
When the submit button is clicked, the activity will exit (finish() will be called). Before the activity exits, I want to save the states of the check boxes in the activity, so when the activity starts again, the check boxes can stay in their previous states. What's the correct way to save these states? Should I use SharedPreference.
View 1 Replies
View Related
Feb 27, 2014
I have some doubt about the amount of RAM in my Android device . Not sure if it has 256 MB or 512 MB โโ. I was able to run through a terminal in android : cat / proc / meminfo
Apparently I have approximately 466MB of RAM. If so will I have 512 MB. The question comes because if I run the command "free" or if I see from the above command in LowTotal line, only tells me 233 MB ...
What is the correct information in RAM for my device? I did the same procedure to another cell which mine where I'm more sure of having 512 MB โโof memory and this is what I get: URL>...The funny thing is that it shows me 584 MB of MemTotal and the same amount for LowTotal. It seems my device, the first , is not using the total amount of RAM available.
View 3 Replies
View Related
Oct 7, 2010
I have a RadioGroup view inside a LinearLayout. The radio buttons are added from dataList. If I call the code below from inside onCreate, the correct button is checked. However the dataList can get updated from time to time and after that happens I call this code again, without destroying the Activity. After that, the view is redrawn but no button is checked. I suspect the RadioGroup checked-button bookkeeping is getting confused by the removeAllViews call. Any ideas what might be going wrong?
View 6 Replies
View Related
Oct 31, 2010
I search a better calculator for my Desire.
The stock calculator calculates incorrect,
e.g. 100-99.9=0.0999999999
The new calculator should very easy to use (and calculate correctly).
Mathematical functions to show graphically would be nice
With these many, many calculators in the market it is hard to find the right.
View 7 Replies
View Related
Oct 29, 2010
I am working on an Android application that displays a list of items when a tab is selected, then displays detail information about an item that was selected from the list :
CODE:............
The details are to be displayed using ImageViews, ImageButtons, and TextViews. The data comes from a database query, so the TextView text and ImageView drawables have to be assigned dynamically.
The correct text from the database query gets assigned to each of the Views. I can see everything being added when I step through the code in the onCreate method of Activity3 in the debugger.
BUT, the drawables are only displayed when I select the first item in the ListActivity. If I select another item, all TextViews display the correct information but the drawables are not displayed for the ImageViews or ImageButtons. It looks like only the backgrounds are being displayed.
The ImageButton drawables are not being dynamically assigned, only the ImageView drawables are. The ImageButton drawables are set in the TableLayout XML that is associated with the activity. Here is one entry :
CODE:..............
Originally, I had android_drawable="@drawable/ic_phone", then tried adding android:background="@drawable/ic_phone", and finally created the following selector (phoneselector.xml) :
If I select the first item again, its proper ImageView drawables are displayed along with the proper text in the TextViews. The ImageView drawables that belong to the other items have no problems being displayed in Activity2's ListView.
The code successfully sets an onClickListener for the button (also in Activity3.onCreate). If I click on what is displayed on the spot where the drawable should be, the phone number is dialed.
The code successfully sets an onClickListener for the button (also in DetailActivity.onCreate).
Has anyone seen anything like this before? I would appreciate any help figuring out what is wrong.
Here are more details because I wonder if the problem has to do with the use of the Views :
The Activity1 extends TabActivity and sets a TabHost view that contains a FrameLayout along with the TabWidget. Activity1 creates the tabs dynamically.
Activity2 extends ListActivity and sets the content to its ListView (via setContentView(getListView()).
When ListActivity.onListItemClick is invoked (item in list is selected), a new Intent is created that contains an identifier in a Bundle and Activity3 is started.
The started activity (in Activity3.onCreate...) sets the content to a TableLayout view defined in a .xml file (via setContentView(R.layout.details.xml).
Here is the code from Activity3.onCreate :
CODE:.................
View 1 Replies
View Related
Jul 21, 2010
I have a simple app which needs to display 1 of many text files (DB is no an option currently)
Where is the best place to put this collection of text files? I am guessing "Assets", but am unsure.
View 1 Replies
View Related
Nov 7, 2010
I'm trying to get an ImageView to sit at the bottom of the screen and I have tried every combination I can think of but no matter what I try, it positions itself in the vertical middle, rather than at the bottom.
In my code below, the Text view does sit at the bottom, but the image does not.
What is the correct methodology for adding an element that would align to the bottom of the screen? code...
View 1 Replies
View Related
Jul 24, 2010
I have a gallery that displays TextViews where the background of each view is the following code...
This selector work just fine for the state_pressed and default (idle) states, but the selected item state is never displayed. I REALLY do not want to force the background of the selected item by changing the background of the view when the onItemSelected event is called. What is the correct state or correct way to get the TextView background to be set properly. Is the selected (center) view in the gallery not really selected? Is there some other state I should put in the selector drawable xml?
View 6 Replies
View Related