0

在我使用 Monodroid 的 Android 应用程序中,我有几个活动。我注意到(物理)后退按钮并不总是让应用程序返回到之前的活动,正如人们所期望的那样。

此外,如果应用程序崩溃,则当前活动消失,但显示应用程序的先前活动。根据我使用 Java 开发 Android 应用程序的经验,这不是我所期望的行为。所以它可能是一个典型的 Monodroid 东西。我在这里错过了什么吗?

我有一个主要活动(飞溅),显示一次。从活动导航到活动是这样的:

我的主要活动

 [Activity(Label = "x", MainLauncher = true, NoHistory = true, Icon = "@drawable/zoeker2", Theme="@android:style/Theme.NoTitleBar")]
    public class SplashActivity : Activity
    {



 private void showLogon()
        {
            System.Threading.Thread.Sleep(500);
            RunOnUiThread(delegate
            {
                StartActivity(typeof(LogonActivity)); 
            });
        }

我的登录活动

 [Activity(Label = "x",   Theme = "@android:style/Theme.NoTitleBar")]
    public class LogonActivity : Activity
    {

 void LogonActivity_OnLogonSucceeded(object sender, EventArgs e)
        {
            Tools.Log("Logon Activity. Logon succeeded");
            updateButtonStates();
            var menuActivity = new Intent(this, typeof(MenuActivity));
            StartActivity(menuActivity);
        }

最后是菜单活动

 [Activity(Label = "Menu", Theme="@android:style/Theme.NoTitleBar")]
    public class MenuActivity : Activity, ILocationListener, ISensorEventListener 
    {

这里没有什么花哨的。我必须使用其他属性吗?有什么线索吗?

4

1 回答 1

1

除了使用的 SplashActivity 之外NoHistory = true,我希望您记录的活动在 MonoDroid/Android 中的“正常 BackStack 操作”中工作

您对 Java/Android 的体验也应该在 Mono for Android 中看到。

你能试试像 ApiDemo 这样的东西吗 - 在你当前的设置中是否有效 - https://github.com/xamarin/monodroid-samples/tree/master/ApiDemo

如果您仍然看到问题,那么也许您可以发布一个小示例项目,或者您可以将其作为错误/问题报告给http://bugzilla.xamarin.com/enter_bug.cgi


上:

此外,如果应用程序崩溃,当前活动消失,但显示应用程序的先前活动

这听起来很不寻常。您有时确实会看到 Android 在调试会话结束后尝试重新启动以前的应用程序 - 也许这就是您所看到的?

于 2012-05-30T09:32:03.527 回答