If I remove this from your ActivityB in the Manifest then they behave
the same.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
I think it because we are NOT invoking this Intent in the button. I
predict that if we invoke this Intent in the buttton click that your
app will then behave as expected and go back to ActivityB
On Feb 19, 12:40 pm, jotobjects <[email protected]> wrote:
> We have the same results but different analysis.
>
> Same results - my app goes back to ActivityB and your app goes back to
> ActivityA.
>
> Different analysis - I do NOT think the click listener definition
> makes any difference (just a difference in style but functionally the
> same). What I DID notice is that when I use my AndroidManifest that
> your app and my app behave the same. Haven't figured out why that is
> so yet.
>
> On Feb 19, 12:09 pm, Mark Wyszomierski <[email protected]> wrote:
>
> > Ok so yours work, and I see the change that causes my version to lose
> > its history:
>
> > // Yours - works:
> > private OnClickListener gotoBClickListener = new
> > GotoBClickListener();
> > public void onCreate(Bundle savedInstanceState) {
> > button.setOnClickListener(gotoBClickListener);
>
> > }
>
> > // Mine - does not work:
> > public void onCreate(Bundle savedInstanceState) {
> > button.setOnClickListener(new OnClickListener() {
> > public void onClick(View arg0) {
> > Intent intent = new Intent();
> > intent.setClass(ActivityA.this, ActivityB.class);
> > startActivity(intent);
> > }
> > });
>
> > }
>
> > but I don't understand why this should make my history stack get wiped
> > out, depending on when the click handler was defined which launches
> > the intent?
>
> > Thanks
>
> > On Feb 19, 11:35 am, Mark Wyszomierski <[email protected]> wrote:
>
> > > Thanks for posting, I'll make a new project with your code to test.
> > > Although my G1 is running 1.5, my emulator is using 2.0, so it should
> > > be testing both situations. Will try yours now,
>
> > > Thanks
>
> > > On Feb 19, 11:21 am, jotobjects <[email protected]> wrote:
>
> > > > Yes in the last step I get back to ActivityB and you get back to
> > > > ActivityA so that's different behavior. The only environment
> > > > difference apparently is that your test is with 1.5 and my test is
> > > > with 2.0.1, but it doesn't seem like this core behavior would have
> > > > changed. Here is my app. I'll test your app also.
>
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > <manifest xmlns:android="http://schemas.android.com/apk/res/android"
> > > > package="foo.singletask"
> > > > android:versionCode="1"
> > > > android:versionName="1.0">
> > > > <uses-sdk android:minSdkVersion="3" />
> > > > <application android:label="SimpleSingleTask">
> > > > <activity android:name=".ActivityA"
> > > > launchMode="singleTask">
> > > > <intent-filter>
> > > > <action android:name="android.intent.action.MAIN" />
> > > > <category
> > > > android:name="android.intent.category.LAUNCHER" />
> > > > </intent-filter>
> > > > </activity>
> > > > <activity android:name=".ActivityB"/>
> > > > </application>
> > > > </manifest>
>
> > > > - - - - ActivityA.java - - - -
> > > > package foo.singletask;
>
> > > > import android.app.Activity;
> > > > import android.content.ComponentName;
> > > > import android.content.Intent;
> > > > import android.os.Bundle;
> > > > import android.view.View;
> > > > import android.view.View.OnClickListener;
> > > > import android.widget.Button;
>
> > > > public class ActivityA extends Activity
> > > > {
> > > > private OnClickListener gotoBClickListener = new
> > > > GotoBClickListener();
> > > > private Intent gotoBIntent;
>
> > > > @Override
> > > > public void onCreate(Bundle savedInstanceState) {
> > > > super.onCreate(savedInstanceState);
> > > > setContentView(R.layout.viewa);
> > > > Button button = (Button)findViewById(R.id.gotoB);
> > > > button.setOnClickListener(gotoBClickListener);
> > > > gotoBIntent = new Intent().setComponent(
> > > > new ComponentName(this, ActivityB.class));
> > > > }
>
> > > > private class GotoBClickListener implements OnClickListener {
> > > > @Override
> > > > public void onClick(View v) {
> > > > startActivity(gotoBIntent);
> > > > }
> > > > }
>
> > > > }
>
> > > > - - - - ActivityB.java - - - -
> > > > package foo.singletask;
>
> > > > import android.app.Activity;
> > > > import android.os.Bundle;
>
> > > > public class ActivityB extends Activity
> > > > {
> > > > @Override
> > > > public void onCreate(Bundle savedInstanceState) {
> > > > super.onCreate(savedInstanceState);
> > > > setContentView(R.layout.viewb);
> > > > }
>
> > > > }
>
> > > > - - - - res/layout/viewa.xml - - -
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > <Button xmlns:android="http://schemas.android.com/apk/res/android"
> > > > android:id="@+id/gotoB"
> > > > android:layout_width="wrap_content"
> > > > android:layout_height="wrap_content"
> > > > android:textColor="#FF0000"
> > > > android:text="This is A - Go to B"/>
>
> > > > - - - - res/layout/viewb.xml - - -
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > <TextView xmlns:android="http://schemas.android.com/apk/res/android"
> > > > android:layout_width="fill_parent"
> > > > android:layout_height="fill_parent"
> > > > android:textColor="#FF0000"
> > > > android:text="hello from Activity B"/>
>
> > > > On Feb 19, 6:36 am, Mark Wyszomierski <[email protected]> wrote:
>
> > > > > Hi jotobjects,
>
> > > > > Yes I am running it as you described, here it is exactly:
>
> > > > > -Run emulator (same on g1 running 1.5)
> > > > > -Make sure all instances of app are killed (not running from eclipse)
> > > > > -Start app from app tray, ActivityA is created
> > > > > -ActivityA launched ActivityB via button click
> > > > > -Home button
> > > > > -Open app tray, click app icon
> > > > > -ActivityA is shown instead of ActivityB
>
> > > > > are you sure you're getting different behavior? If so, it would be
> > > > > awesome if you could post your sample, this is definitely not desired
> > > > > behavior!
>
> > > > > Thanks
>
> > > > > On Feb 18, 1:57 pm, jotobjects <[email protected]> wrote:
>
> > > > > > On quick inspection your app looks almost like the one I tested. My
> > > > > > test is with the emulator with Android 2.0.1. I am NOT running this
> > > > > > from eclipse. Any difference from your scenario?
>
> > > > > > What do you mean by "resume" in your scenario? Do you mean pulling
> > > > > > down the tray and clicking on the App icon again?
>
> > > > > > On Feb 18, 12:53 pm, Mark Wyszomierski <[email protected]> wrote:
>
> > > > > > > Hi jotobjects, that would be really helpful if you could post your
> > > > > > > example. My simple example is below. Behavior I am seeing is:
>
> > > > > > > -App Tray
> > > > > > > -ActivityA
> > > > > > > -btn click, start ActivityB
> > > > > > > -home button
> > > > > > > -resume
> > > > > > > -ActivityA is shown
>
> > > > > > > import android.app.Activity;
> > > > > > > import android.content.Intent;
> > > > > > > import android.os.Bundle;
> > > > > > > import android.view.View;
> > > > > > > import android.view.View.OnClickListener;
> > > > > > > import android.widget.Button;
>
> > > > > > > public class ActivityA extends Activity {
> > > > > > > @Override
> > > > > > > public void onCreate(Bundle savedInstanceState) {
> > > > > > > super.onCreate(savedInstanceState);
> > > > > > > setContentView(R.layout.activitya);
>
> > > > > > > Button btn = (Button)findViewById(R.id.btn);
> > > > > > > btn.setOnClickListener(new OnClickListener() {
> > > > > > > public void onClick(View arg0) {
> > > > > > > Intent intent = new Intent();
> > > > > > > intent.setClass(ActivityA.this, ActivityB.class);
> > > > > > > startActivity(intent);
> > > > > > > }
> > > > > > > });
> > > > > > > }
>
> > > > > > > }
>
> > > > > > > import android.app.Activity;
> > > > > > > import android.os.Bundle;
>
> > > > > > > public class ActivityB extends Activity {
> > > > > > > @Override
> > > > > > > public void onCreate(Bundle savedInstanceState) {
> > > > > > > super.onCreate(savedInstanceState);
> > > > > > > setContentView(R.layout.activityb);
> > > > > > > }
>
> > > > > > > }
>
> > > > > > > <activity android:name=".ActivityA"
> > > > > > > android:label="@string/app_name"
> > > > > > > android:launchMode="singleTask">
> > > > > > > <intent-filter>
> > > > > > > <action android:name="android.intent.action.MAIN" />
> > > > > > > <category android:name="android.intent.category.LAUNCHER" />
> > > > > > > </intent-filter>
> > > > > > > </activity>
>
> > > > > > > <activity android:name=".ActivityB"
> > > > > > > android:label="@string/app_name">
> > > > > > > <intent-filter>
> > > > > > > <action android:name="android.intent.action.VIEW" />
> > > > > > > <category android:name="android.intent.category.DEFAULT" />
> > > > > > > </intent-filter>
> > > > > > > </activity>
>
> > > > > > > Thanks
>
> > > > > > > On Feb 18, 10:18 am, jotobjects <[email protected]> wrote:
>
> > > > > > > > Just curious since you and others have asked similar questions
> > > > > > > > in the
> > > > > > > > past. I just wrote a simple App with ActivityA and ActivityB
> > > > > > > > where A
> > > > > > > > issingleTasklaunchMode. If I go A->b->Home->relaunch I get
> > > > > > > > gack to
> > > > > > > > B. So I cannot replicate the scenario you describe. The code
> > > > > > > > and all
> > > > > > > > files for the app are just a couple of dozen lines so I can
> > > > > > > > post if
> > > > > > > > here if that would be helpful to figure out what you are doing
> > > > > > > > differently than my test.
>
> > > > > > > > On Feb 18, 7:09 am, Mark Wyszomierski <[email protected]> wrote:
>
> > > > > > > > > Hi,
>
> > > > > > > > > I have an activity, ActivityA, and its launchMode is set to
> > > > > > > > > "singleTask".
>
> > > > > > > > > I start the application from the app tray. ActivityA launches
> > > > > > > > > ActivityB from a button click. ActivityB is a normal activity
> > > > > > > > > with no
> > > > > > > > > launchMode set ("standard").
>
> > > > > > > > > With
>
> ...
>
> read more »
--
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