That is the intended behavior and has been the case since 1.0. The common case is that you have one application with one task that goes together. If you want to split it into separate tasks, you need to explicitly do so.
On Tue, Jan 11, 2011 at 11:27 PM, Schoel <[email protected]> wrote: > Thank you very much, Dianne Hackborn! That helped. Still seems like a > bug though, doesn't it? Maybe a fixed one at that since it seems to > work in 2.2. > > On 11 Jan, 18:33, Dianne Hackborn <[email protected]> wrote: > > This is because all activities in an .apk are given the same task > affinity > > by default, so they will try to stay together on the same stack. You can > > use android:taskAffinity on an activity to change this. Use "" if you > don't > > want a task affinity for an activity (probably what you want for the > > dialog). > > > > There is some description of this here: > http://developer.android.com/guide/topics/fundamentals.html#afftask > > > > > > > > On Tue, Jan 11, 2011 at 4:52 AM, Schoel <[email protected]> > wrote: > > > Hello, > > > > > I have found some weird behaviour which might be a bug. I found it > > > while developing a quite large application but I've been able to > > > reproduce the behaviour in a minimal approach so that I can provide > > > source code. > > > > > I have a service that is constantly running and at certain times it > > > pops up an activity with Theme.Dialog as theme for the user. > > > Everything works fine if the main activity of the program has been > > > destroyed (via back button) or if the main activity is currently > > > running. > > > > > However, if the main activity of the app has been created and then > > > minimized (e.g. via Home button), the main activity shows up. It is > > > not possible to click the buttons of the main activity because it > > > seems to be hidden behind an invisible dialog activity. It is possible > > > to click the buttons of the dialog if you know where they are and if > > > you click the back button, you can see the dialog flashing by as it > > > disappears and it is then possible to click the main activity buttons. > > > > > I've tested this on HTC Desire 2.2, HTC Wildfire 2.1, HTC Legend 2.1, > > > Sony x10 mini pro 2.1 and on emulators 2.1 and 2.2. The behaviour > > > described happens on all 2.1 devices and emulator but not on emulator > > > 2.2 nor on the Desire with 2.2. > > > > > Source code is provided below. There are 2 buttons in the main > > > activity, the first, called "Finish" asks the service to popup the > > > dialog in 3 seconds and then finishes the main activity. This button > > > is for illustrative purposes only, it works fine. The second button, > > > called "Post later" just asks the service to popup the dialog in 3 > > > seconds. If the second button is clicked and before the 3 seconds have > > > passed, the home button is clicked, the bug appears. > > > > > Source code: > > > Main.java: > > > -------------------------------------------------------------- > > > package com.myapp.DialogBugTest; > > > > > import android.app.Activity; > > > import android.content.Intent; > > > import android.os.Bundle; > > > import android.os.Handler; > > > import android.view.View; > > > > > public class Main extends Activity > > > { > > > private Handler handler = new Handler(); > > > > > private final Runnable runnable = new Runnable() > > > { > > > public void run() > > > { > > > DialogBugTestService.getInstance().showDialog(); > > > } > > > }; > > > > > /** Called when the activity is first created. */ > > > @Override > > > public void onCreate(Bundle savedInstanceState) > > > { > > > super.onCreate(savedInstanceState); > > > setContentView(R.layout.main); > > > > > startService(new Intent(this, DialogBugTestService.class)); > > > } > > > > > public void onFinishButton(View aView) > > > { > > > handler.postDelayed(runnable, 3000); > > > finish(); > > > } > > > > > public void onLaterButton(View aView) > > > { > > > handler.postDelayed(runnable, 3000); > > > } > > > } > > > -------------------------------------------------------------- > > > main.xml: > > > -------------------------------------------------------------- > > > <?xml version="1.0" encoding="utf-8"?> > > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > > > android" > > > android:orientation="vertical" > > > android:layout_width="fill_parent" > > > android:layout_height="fill_parent" > > > > > <Button > > > android:id="@+id/finish_button" > > > android:layout_width="fill_parent" > > > android:layout_height="wrap_content" > > > android:text="Finish" > > > android:onClick="onFinishButton" > > > /> > > > <Button > > > android:id="@+id/later_button" > > > android:layout_width="fill_parent" > > > android:layout_height="wrap_content" > > > android:text="Post later" > > > android:onClick="onLaterButton" > > > /> > > > </LinearLayout> > > > -------------------------------------------------------------- > > > DialogBugTestService.java: > > > -------------------------------------------------------------- > > > package com.myapp.DialogBugTest; > > > > > import android.app.Service; > > > import android.content.Intent; > > > import android.os.IBinder; > > > import android.util.Log; > > > > > public class DialogBugTestService extends Service > > > { > > > private static DialogBugTestService instance = null; > > > @Override > > > public void onCreate() > > > { > > > super.onCreate(); > > > instance = this; > > > } > > > > > @Override > > > public int onStartCommand(Intent intent, int flags, int startId) > > > { > > > return START_STICKY; > > > } > > > > > public static DialogBugTestService getInstance() > > > { > > > if (instance == null) > > > { > > > Log.e("service", "instance is null!"); > > > } > > > return instance; > > > } > > > > > public void showDialog() > > > { > > > Intent intent = new Intent(this, DialogBugDialog.class); > > > intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); > > > startActivity(intent); > > > } > > > > > @Override > > > public IBinder onBind(Intent arg0) > > > { > > > return null; > > > } > > > } > > > -------------------------------------------------------------- > > > DialogBugDialog.java: > > > -------------------------------------------------------------- > > > package com.optimobile.DialogBugTest; > > > > > import android.app.Activity; > > > import android.os.Bundle; > > > import android.view.View; > > > > > public class DialogBugDialog extends Activity > > > { > > > > > @Override > > > protected void onCreate(Bundle aSavedInstanceState) > > > { > > > super.onCreate(aSavedInstanceState); > > > setContentView(R.layout.dialog); > > > } > > > > > public void onOk(View aView) > > > { > > > finish(); > > > } > > > > > } > > > -------------------------------------------------------------- > > > dialog.xml: > > > -------------------------------------------------------------- > > > <?xml version="1.0" encoding="utf-8"?> > > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > > > android" > > > android:orientation="vertical" > > > android:layout_width="fill_parent" > > > android:layout_height="fill_parent" > > > > > <Button > > > android:id="@+id/ok_button" > > > android:layout_width="fill_parent" > > > android:layout_height="fill_parent" > > > android:text="OK" > > > android:onClick="onOk" > > > /> > > > </LinearLayout> > > > -------------------------------------------------------------- > > > > > I've also tried this without the Theme.Dialog as theme and it then > > > works fine. I also tried it with custom styles and the bug seems to > > > appear whenever windowIsFloating is set to true. > > > > > Is this a known bug? Are there any workarounds? I really need this > > > functionality in my app and doing it without a floating window looks > > > really ugly. > > > > > -- > > > 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]<android-developers%[email protected]> > <android-developers%[email protected]<android-developers%[email protected]> > > > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?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 Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected]<android-developers%[email protected]> > For more options, visit this group at > http://groups.google.com/group/android-developers?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 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

