Sorry, this information is not available if your task has has multiple
activities in it.
On Apr 30, 2011 3:18 AM, "Manohar Mahapatra" <[email protected]> wrote:
> Hi Dianne,
>
> I was aware of all these flags. My app has a requirement to know when my
> root / secondary activities are brought to focus by long clicking Home
> (Recent Apps). So I started using
> FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY<
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
>
> in
> my code but saw that it was never set in getFlags(). Then I did more
> investigation and I found all these observation below.
>
> Can you let me know how to know for any activity(other than root activity)
*on
> top of App task* to know that it has been launched by long clicking Home
> (Recent Apps) . As per my observation, getFlags() returns 0 for any
> secondary activity
> (i.e other than the root activity) that is launched by root activity.
>
> thanks for your inputs and time
> AndUzer
>
> On Sat, Apr 30, 2011 at 12:32 PM, Dianne Hackborn <[email protected]
>wrote:
>
>> Why do you care? You are looking at log statements. The log from the
>> activity manager happens to be the Intent printed at some point in its
>> processing. There is nothing defined in the API that some log print in
the
>> system is going to have the same Intent flags values as what is handed to
>> the application.
>>
>> The activity manager is printing the intent that is handed to it when the
>> request to start the activity happens. It will add in flags that should
be
>> set for the launch at that point as defined by the API.
>>
>> Did you even look at what these flags are?
>>
>> 0x10000000:
>>
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK
>>
>> 0x00100000:
>>
>>
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
>>
>> 0x00200000:
>>
>>
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
>>
>> And for the one where you say there are no flags, yes, there are no flag
>> bits set so to save space nothing is printed about the flag.
>>
>> This all seems to be working perfectly fine to me,
>>
>> On Sat, Apr 30, 2011 at 12:10 AM, Manohar Mahapatra <
[email protected]
>> > wrote:
>>
>>> Hi,
>>>
>>>
>>>
>>> I am seeing some issues in the way the following API( *getFlags()*) of
>>> the Intent class works . I see that the Activity Manager starts a
Activity
>>> with some value of flag set in the Intent but when I print the Intent
object
>>> in the root Activity ,
>>>
>>> the flag value in the Intent object is not same as what Activity Manager
>>> launched the intent with for some scenarios. Second issue Any other
Activity
>>> launched by the root activity has no info of the flag in the intent
>>>
>>>
>>>
>>> "int getFlags<
http://developer.android.com/reference/android/content/Intent.html#getFlags%28%29
>()
>>>
>>>
>>> Retrieve any special flags associated with this intent."
>>>
>>>
>>>
>>>
>>>
>>> In my use case , I have an Application which has two activities, the
>>> Android Manifest file looks something like this
>>>
>>>
>>>
>>> <?xml version=*"1.0"* encoding=*"utf-8"*?>
>>>
>>> <manifest xmlns:android=*"http://schemas.android.com/apk/res/android"*
>>>
>>> package=*"com.example.flag"*
>>>
>>> android:versionCode=*"1"*
>>>
>>> android:versionName=*"1.0"*>
>>>
>>> <application android:icon=*"@drawable/icon"* android:label=*
>>> "@string/app_name"*>
>>>
>>> <activity android:name=*".MainActivity"*
>>>
>>> android:label=*"@string/app_name"*>
>>>
>>> <intent-filter>
>>>
>>> <action android:name=*"android.intent.action.MAIN"* />
>>>
>>> <category android:name=*
>>> "android.intent.category.LAUNCHER"* />
>>>
>>> </intent-filter>
>>>
>>> </activity>
>>>
>>>
>>>
>>> <activity android:name=*".SecondActivity"*
>>>
>>> android:label=*"@string/app_name1"*>
>>>
>>> </activity>
>>>
>>> </application>
>>>
>>> </manifest>
>>>
>>>
>>>
>>> The code for the “MainActivity” is as follows
>>>
>>>
>>>
>>> *package* com.example.flag;
>>>
>>> *import* android.app.Activity;
>>>
>>> *import* android.content.Intent;
>>>
>>> *import* android.os.Bundle;
>>>
>>> *import* android.util.Log;
>>>
>>> *import* android.view.View;
>>>
>>> *import* android.view.View.OnClickListener;
>>>
>>> *import* android.widget.Button;
>>>
>>>
>>>
>>> *public* *class* MainActivity *extends* Activity {
>>>
>>> /** Called when the activity is first created. */
>>>
>>> @Override
>>>
>>> *public* *void* onCreate(Bundle savedInstanceState) {
>>>
>>> *super*.onCreate(savedInstanceState);
>>>
>>> setContentView(R.layout.*main*);
>>>
>>>
>>>
>>> Button b = (Button) findViewById(R.id.*button1*);
>>>
>>> b.setOnClickListener(*new* OnClickListener() {
>>>
>>> *public* *void* onClick(View v) {
>>>
>>> startActivity(*new* Intent(MainActivity.*this*
>>> ,SecondActivity.*class*));
>>>
>>> }
>>>
>>> });
>>>
>>> }
>>>
>>>
>>>
>>> /* (non-*Javadoc*)
>>>
>>> * @see android.app.Activity#onResume()
>>>
>>> */
>>>
>>> @Override
>>>
>>> *protected* *void* onResume() {
>>>
>>> *super*.onResume();
>>>
>>> Log.*d*("MainActivity", "MainActivity
>>> getIntent().toString()::" +getIntent().toString());
>>>
>>> }
>>>
>>> }
>>>
>>>
>>>
>>> The code for the “SecondActivity” is as follows
>>>
>>>
>>>
>>> *package* com.example.flag;
>>>
>>>
>>>
>>> *import* android.app.Activity;
>>>
>>> *import* android.graphics.Color;
>>>
>>> *import* android.os.Bundle;
>>>
>>> *import* android.util.Log;
>>>
>>> *import* android.widget.TextView;
>>>
>>>
>>>
>>> *public* *class* SecondActivity *extends* Activity {
>>>
>>> /** Called when the activity is first created. */
>>>
>>> @Override
>>>
>>> *public* *void* onCreate(Bundle savedInstanceState) {
>>>
>>> *super*.onCreate(savedInstanceState);
>>>
>>>
>>>
>>> TextView tv= *new* TextView(*this*);
>>>
>>> tv.setText("Second Activity");
>>>
>>> tv.setBackgroundColor(Color.*WHITE*);
>>>
>>> setContentView(tv);
>>>
>>> }
>>>
>>>
>>>
>>> /* (non-*Javadoc*)
>>>
>>> * @see android.app.Activity#onResume()
>>>
>>> */
>>>
>>> @Override
>>>
>>> *protected* *void* onResume() {
>>>
>>> *super*.onResume();
>>>
>>> Log.*d*("SecondActivity", "MainActivity SecondActivity
"+getIntent().toString());
>>>
>>> }
>>>
>>>
>>>
>>> }
>>>
>>>
>>>
>>>
>>>
>>> First time launch , both the flags in ActivityManager and my
>>> app(MainActivity) are same
>>>
>>> 04-30 03:14:05.132: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] *
>>> flg=0x10000000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:14:05.372: INFO/ActivityManager(71): Start proc
com.example.flag
>>> for activity com.example.flag/.MainActivity: pid=235 uid=10032
gids={1015}
>>>
>>> 04-30 03:14:10.722: DEBUG/MainActivity(235): MainActivity
getIntent().toString()::Intent
>>> { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
*
>>> flg=0x10000000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:14:11.132: INFO/ActivityManager(71): Displayed activity
>>> com.example.flag/.MainActivity: 5970 ms (total 5970 ms)
>>>
>>>
>>>
>>>
>>>
>>> Then I press Home button , then I do a Long press Home to launch
>>> MainActivity from the Recent Apps, I get this log and I see now *they
are
>>> not same.*
>>>
>>> 04-30 03:15:03.353: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.HOME]
>>> flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher }
>>>
>>> 04-30 03:15:15.562: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] *
>>> flg=0x10100000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:15:15.652: DEBUG/MainActivity(235): MainActivity
getIntent().toString()::Intent
>>> { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
*
>>> flg=0x10000000* cmp=com.example.flag/.MainActivity }
>>>
>>>
>>>
>>> Then I Press back on the MainActivity , bringing me to Android Home and
>>> from the Home Page Icon List, again I launch the Main Activity, this
time
>>> the flags are same again
>>>
>>> 04-30 03:16:10.412: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] *
>>> flg=0x10200000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:16:10.722: DEBUG/MainActivity(235): MainActivity
getIntent().toString()::Intent
>>> { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
*
>>> flg=0x10200000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:16:10.982: INFO/ActivityManager(71): Displayed activity
>>> com.example.flag/.MainActivity: 465 ms (total 465 ms)
>>>
>>>
>>>
>>> Then I press Home button , then I do a Long press Home to launch
>>> MainActivity from the Recent Apps, I get this log and I see now *they
are
>>> not same.*
>>>
>>> 04-30 03:16:21.883: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.HOME]
>>> flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher }
>>>
>>> 04-30 03:16:30.293: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] *
>>> flg=0x10100000* cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:16:30.382: DEBUG/MainActivity(235): MainActivity
getIntent().toString()::Intent
>>> { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
*
>>> flg=0x10200000* cmp=com.example.flag/.MainActivity }
>>>
>>>
>>>
>>> Then I launch SecondActivity from the Main Activity
>>>
>>> 04-30 03:16:49.132: INFO/ActivityManager(71): Starting activity: Intent
{
>>> cmp=com.example.flag/.SecondActivity }
>>>
>>> 04-30 03:16:49.233: DEBUG/SecondActivity(235): MainActivity
SecondActivity
>>> Intent { cmp=com.example.flag/.SecondActivity }
>>>
>>> 04-30 03:16:49.542: INFO/ActivityManager(71): Displayed activity
>>> com.example.flag/.SecondActivity: 338 ms (total 338 ms)
>>>
>>>
>>>
>>> I press Home button, I do a Long press Home to launch
>>> MainActivity(MainActivity is first activity of this app task,Second
Activity
>>> being on top of MainActivity) from the Recent Apps, I get this log and I
>>> don’t get any Flags from the Second Activity
>>>
>>> 04-30 03:16:56.833: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.HOME]
>>> flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher }
>>>
>>> 04-30 03:17:05.962: INFO/ActivityManager(71): Starting activity: Intent
{
>>> act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
>>> flg=0x10100000 cmp=com.example.flag/.MainActivity }
>>>
>>> 04-30 03:17:06.022: DEBUG/SecondActivity(235): MainActivity
SecondActivity
>>> Intent { cmp=com.example.flag/.SecondActivity } *// No flag info here*
>>>
>>> *
>>> *
>>>
>>> *
>>> *
>>>
>>> I request anyone to tell me if there is some gap in my understanding or
if
>>> I did not use the components in proper way
>>>
>>>
>>> thanks in advance
>>>
>>> AndUzer
>>>
>>> --
>>> You received this message because you are subscribed to the Google
Groups
>>> "android-platform" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/android-platform?hl=en.
>>>
>>
>>
>>
>> --
>> Dianne Hackborn
>> Android framework engineer
>> [email protected]
>>
>> Note: please don't send private questions to me, as I don't have time to
>> provide private support, and so won't reply to such e-mails. All such
>> questions should be posted on public forums, where I and others can see
and
>> answer them.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "android-platform" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/android-platform?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to