https://bugzilla.novell.com/show_bug.cgi?id=639679

https://bugzilla.novell.com/show_bug.cgi?id=639679#c0


           Summary: StartActivity() requiring intent to have
                    FLAG_ACTIVITY_NEW_TASK and not assuming the caller's
                    task affinity
    Classification: Mono
           Product: MonoDroid
           Version: SVN
          Platform: 64bit
        OS/Version: Windows 7
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Runtime
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.55 Safari/534.3

So, according to Android docs, if we startactivity from another activity, by
default, the task affinity of the new activity should be to belong to the same
Task that the calling activity belongs to.
http://developer.android.com/guide/topics/fundamentals.html#afftask

However, I'm noticing that I get an error:
android.util.AndroidRuntimeException: Calling startActivity() from outside of
an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really
what you want?
at android.app.ApplicationContext.startActivity()

Check out the code I'm using in the Additional Notes.  But, I'm passing 'this'
as the context where this is an Activity, however the stacktrace is showing
that ApplicationContext seems to be what's used.  Perhaps this is the problem? 
The context needs to be the Activity's context?

I know if I add the ActivityFlags.NewTask (FLAG_ACTIVITY_NEW_TASK) it works,
but I believe the point is, I should not have to do that.

Reproducible: Always




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace MonoDroidTesting
{
    public class SimpleDataList : ListActivity
    {
        public SimpleDataList(IntPtr handle)
            : base(handle)
        {
        }

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            string[] items = new string[] {
                "Item One",
                "Second Item",
                "Number Three",
                "Fourth Option",
                "Fifth One",
                "Sixth Item",
                "Number Seven",
                "This is Eight",
                "Nine",
                "Ten Speed"
            };

            this.ListAdapter = new ArrayAdapter<string>(this,
Android.R.Layout.SimpleListItem1, items);
            this.ListView.ItemClick += new
EventHandler<ItemEventArgs>(ListView_ItemClick);
        }

        void ListView_ItemClick(object sender, ItemEventArgs e)
        {
            //Toast.MakeText(this, "test", ToastLength.Short).Show();
            var intent = new Intent().SetClassName(this.BaseContext,
"monoDroidTesting.SubActivity");
            //    intent.AddFlags(ActivityFlags.NewTask);

            StartActivity(intent);

        }
    }
}

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to