首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >onPause()和onResume()在中没有调用

onPause()和onResume()在中没有调用
EN

Stack Overflow用户
提问于 2018-03-09 03:00:38
回答 4查看 3.6K关注 0票数 3

我正在Visual中用Xamarin Android开发一个Android应用程序。

我有一个MainActivity,它将不会超过2个按钮登录或注册。一旦其中一个按钮被点击,就会启动如下新的活动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sign_in_button.Click += delegate 
{
    var login_activity = new Intent(this, typeof(Login));
    StartActivity(login_activity);
};

在这个活动中,我做了所有我需要用API登录的事情,一切正常,成功后我保存令牌并调用Finish();返回到MainActivity。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(response_text != "\"wrong\"")
{
    General.SaveToken(this, response_text);
    Finish();
}

现在,问题是我需要以某种方式告诉MainActivity,用户成功登录了。为此,我考虑检查SharedPreferences中是否保存了令牌,如果存在,则启动所需的活动。这样,当应用程序打开时,如果已经保存了令牌,那么它也应该可以工作,然后转到x活动。

我的问题是,所有的活动事件(onPause、onRestart、onResume等)从未被称为.在MainActivity中,我添加了一个测试,以验证它是否像这样被调用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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。我也试图添加断点,但它们没有被击中。

当然,我尝试了所有其他的事件,都有相同的结果:没有。

据我从活动生命周期文档中了解到,onPause在调用StartActivity时会自动调用,在“子”活动调用Finish()之后会自动调用onResume,或者当按下back按钮时会自动调用onResume。

我错过了什么/做错了什么?

我读到这可能是Visual的一个问题,所以我在提供的android模拟器上和在一个真正的设备(LGE Nexus 5运行Android6.0.1)上进行了尝试,结果相同。

请帮帮我!

谢谢大家提前!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-14 03:41:19

显然问题是Visual,我重新安装了它,所有的活动事件都被正确地调用了。

谢谢大家的支持

票数 0
EN

Stack Overflow用户

发布于 2018-03-09 03:46:49

首先,确保您没有手动创建任何活动实例,这可能是某个活动的实例没有接收生命周期回调的原因之一。

但是,如果您的主要活动出现/单击上面的按钮,则会调用它们,但是您的环境/IDE可能有问题。

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

因此,可以启动登录活动以获取结果,如果登录成功,则返回RESULT_OK;如果没有成功,则返回RESULT_CANCELLED

在MainActivity中,您可以通过重写onActivityResult来检查结果

编辑:

好吧,让我们来调试一下你的尝试

  • 我不知道在onPause中显示对话框会做什么,因为基本上,当您的活动失去焦点时,您将显示一个对话框。
  • 请阅读这里Console并不真正在Android上工作,请使用Android的日志类代替。
票数 2
EN

Stack Overflow用户

发布于 2019-07-11 08:29:39

我也遇到了同样的问题,通过删除binobj文件夹解决了这个问题,然后我重新构建了这个项目,它成功了。我正在使用VisualStudioCommunity2019

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49192276

复制
相关文章
Python中根据时间自动创建文件夹
Python中根据时间自动创建文件夹 import shutil import os def remove_file(old_path, new_path): print(old_path) print(new_path) filelist = os.listdir(old_path) #列出该目录下的所有文件,listdir返回的文件列表是不包含路径的。 print(filelist) for file in filelist: src = os.
青阳
2021/03/31
1.4K0
查找目录中同名的文件或者文件夹
查找Linux、MAC下同名文件和文件夹。比如 Folder1和folder1 、filename1和Filename1。
用户3135539
2018/09/12
3.9K0
在WordPress媒体库中创建文件夹
WordPress默认后台媒体管理功能比较弱,不能整理不同类型媒体文件,如果您上传了大量媒体文件,都混杂在一起,无法管理,我们可以通过WordPress丰富的插件获得更好的媒体目录。
星哥玩云
2022/06/11
2.6K0
在WordPress媒体库中创建文件夹
WordPress自动在uploads文件夹内创建子文件夹
在开发主题或者插件的时候,经常要创建一个自定义的文件夹,我经常使用的一种方法就是在插件或主题安装的时候,先让程序自动到某个文件夹下先检测这个文件夹是否存在,如果不存在就自动创建一个文件夹。 下面的代码演示了如何在uploads文件夹中自动地创建一个自定义文件夹: function myplugin_activate() { $upload = wp_upload_dir(); $upload_dir = $upload['basedir']; $upload_dir = $upload_dir . '/my
Jeff
2018/01/19
1.7K0
spark读取多个文件夹(嵌套)下的多个文件
在正常调用过程中,难免需要对多个文件夹下的多个文件进行读取,然而之前只是明确了spark具备读取多个文件的能力。
sparkexpert
2022/05/07
3.2K0
使用Power Automate在Onedrive for Business中创建空文件夹
在Onedrive for Business(以下简称ODB)中创建一个文件是非常轻松的一件事:
陈学谦
2023/01/03
3.7K0
使用Power Automate在Onedrive for Business中创建空文件夹
Mac在文件夹/终端中打开终端/文件夹
如图,想要在终端中到该文件夹,自然而然的办法是cd /usr/share/doc/postfix/html, 但其实还有更简洁的办法,即如上安装Go2Shell或cd to插件
fliter
2023/06/18
1K0
Mac在文件夹/终端中打开终端/文件夹
在 Linux 中重命名文件夹中的所有文件
在Linux系统中,有时候我们需要批量重命名文件夹中的所有文件,以便更好地组织和管理文件。本文将详细介绍几种在Linux中重命名文件夹中所有文件的方法,包括使用命令行工具和脚本等方式。
网络技术联盟站
2023/06/08
5.1K0
在 Linux 中重命名文件夹中的所有文件
在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹)
本文整理 MSBuild 在编译过程中对文件和文件夹处理的各种自带的编译任务(Task)。
walterlv
2023/10/22
3650
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.2K0
python 遍历文件夹 查找大文件
import os path = "C:/" #文件夹目录 def eachFile(filepath): fileNames = os.listdir(filepath) # 获取当前路径下的文件名,返回List for file in fileNames: newDir = filepath + '/' + file # 将文件命加入到当前文件路径后面 if os.path.isfile(newDir): # 如果是文件 if os.path.splitext(newDir)[1] == ".txt": # 判断是否是txt size=os.path.getsize(newDir) size=size/(1024*1024) if size>100: print(newDir,size) else: eachFile(newDir) #如果不是文件,递归这个文件夹的路径
用户5760343
2019/07/07
2.8K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户7639835
2021/09/01
3.7K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell  提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是 内容:
用户1685462
2021/09/05
3.3K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户9236362
2021/11/30
4K0
mac 在 home 目录下创建文件夹
编译 /etc/auto_master 文件,注释掉或者移除以 /home 开头的那一行,保存。
一个会写诗的程序员
2020/11/26
3.2K0
查找修改时间在指定区间的文件并打包
#!/bin/bash # find file and tar # joyousphper@gmail.com # find_and_tar.sh read -p "Please enter a search path (eg:/root/) >" search_path if [ -d $search_path ];then echo "find path $search_path" else echo "error: $search_path is not a directory" exit 0
苦咖啡
2018/05/08
1.3K0
在pycharm中如何将django中多个app放到同个文件夹apps处理
新建apps文件夹后mark为source目录,然后在Setting中import方式为
Ewdager
2020/07/14
2K0
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
Q:如何实现根据列表内容查找文件夹中的照片,并将照片剪切或复制到另外的文件夹?如下图1所示,在列C中有一系列身份证号。
fanjy
2020/09/25
2.9K0
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
Linux下在文件夹所有文件中查找相关内容
grep是在使用Linux时经常会用到的一个命令了,这个命令平时大都主要用来进行对一段输出的关键字定位,但是这个命令也可以通过使用某些参数来达到文件夹文件内容遍历的效果
impressionyang
2020/08/26
35.9K0
点击加载更多

相似问题

Applescript:在多个文件夹中创建新的文件夹结构

12

在熊猫中查找最接近给定时间的DataFrame行

30

Applescript:创建文件夹/子文件夹并移动多个文件

21

AppleScript查找包含特定文件的文件夹

14

创建文件夹Applescript

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文