gpt4 book ai didi

android - 在 Xamarin Android 中未调用 onPause() 和 onResume()

转载 作者:搜寻专家 更新时间:2023-11-01 09:28:30 25 4
gpt4 key购买 nike

我正在 Visual Studio 中使用 Xamarin Android 开发 Android 应用程序。
我有一个 MainActivity,它只不过是 2 个用于登录或注册的按钮。一旦这些按钮中的一个被点击,一个新的 Activity 就会像这样开始:

sign_in_button.Click += delegate 
{
var login_activity = new Intent(this, typeof(Login));
StartActivity(login_activity);
};

在该 Activity 中,我执行了使用 API 登录所需的所有操作,一切正常,成功后我保存 token 并调用 Finish();返回 MainActivity。

if(response_text != "\"wrong\"")
{
General.SaveToken(this, response_text);
Finish();
}

现在,问题是我需要以某种方式告诉 MainActivity 用户已成功登录。为此,我正在考虑检查 SharedPreferences 中是否保存了 token ,如果是,则启动所需的 Activity 。以这种方式它也应该在应用程序打开时工作,如果 token 已经保存,请转到 x Activity
我的问题是所有 Activity 事件(onPause、onRestart、onResume 等)都不会被调用...在 MainActivity 中我添加了一个测试只是为了验证它是否像这样被调用:

protected override void OnPause()
{
base.OnPause();
Console.WriteLine("TEEEEEEEEST");
//set alert for executing the task
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.SetTitle("Activity event");
alert.SetMessage("The activity is paused");
alert.SetPositiveButton("Ok", (senderAlert, args) =>
{

});

Dialog dialog = alert.Create();
dialog.Show();
}

但是对话框从未出现,控制台中也没有显示 TEEEEEEEEST。我也尝试添加断点,但没有命中。
当然,我尝试了所有其他事件,结果都是一样的:什么都没有。
据我从 Activity 生命周期文档中了解到,调用 StartActivity 时会自动调用 onPause,在“子” Activity 调用 Finish() 后会自动调用 onResume;或者当后退按钮被按下时。
我错过了什么/做错了什么??
我读到这可能是 Visual Studio 的问题,所以我在提供的 android 模拟器和真实设备(运行 Android 6.0.1 的 LGE Nexus 5)上都尝试了相同的结果。
请帮忙!

提前谢谢大家!

最佳答案

首先确保您没有手动创建任何 Activity 实例,这可能是 Activity 实例未收到生命周期回调的原因。

但是如果您的主要 Activity 出现了/您点击了它上面的一个按钮,那么它们就会被调用,但是您的环境/IDE 可能有问题。

解决原始问题的一个好方法是使用 startActivityForResult()

因此您的登录 Activity 可以启动结果,如果登录成功则返回 RESULT_OK 否则返回 RESULT_CANCELLED

在您的 MainActivity 中,您通过覆盖 onActivityResult

检查结果

编辑:

好的,让我们调试你的尝试

  • 我不知道在 onPause 中显示对话框会做什么,因为基本上您是在 Activity 失去焦点时显示对话框。

  • 阅读here Console 在 Android 上不能正常工作,请改用 Android 的 Log 类。

关于android - 在 Xamarin Android 中未调用 onPause() 和 onResume(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com