在我使用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
{
这里没什么好看的。我必须使用其他属性吗?任何线索?
答案 0 :(得分:1)
除了使用NoHistory = true
的SplashActivity之外,我希望你记录的活动在MonoDroid / Android中的“正常BackStack操作”中工作
你也应该在Mono for Android中看到你对Java / Android的体验。
你可以试试像ApiDemo这样的东西 - 在你当前的设置中是否有用 - https://github.com/xamarin/monodroid-samples/tree/master/ApiDemo
如果您仍然遇到问题,那么也许您可以发布一个小型示例项目,或者您可以将此作为错误/问题报告给http://bugzilla.xamarin.com/enter_bug.cgi
在:
此外,如果应用程序崩溃当前活动消失,但是 显示应用程序的上一个活动
这听起来很不寻常。你有时会看到Android尝试在调试会话结束后重新启动之前的应用程序 - 也许这就是你所看到的?