android onresume函数,android – 在Activity中重新创建后未调用onResume

android onresume函数,android – 在Activity中重新创建后未调用onResume在应用程序设置中进行某些更改时,我在recreate的onActivityResult中调用MainActivity。重新创建后,不调用onResume。我也收到错误:E/ActivityThread:Performingpauseofactivitythatisnotresumed从this问题开始,我了解到不能从onResume调用此函数。但是我从onActivityResul…

大家好,又见面了,我是你们的朋友全栈君。

在应用程序设置中进行某些更改时,我在recreate的onActivityResult中调用MainActivity。重新创建后,不调用onResume。

我也收到错误:E/ActivityThread: Performing pause of activity that is not resumed

从this问题开始,我了解到不能从onResume调用此函数。但是我从onActivityResult打电话给他们。另外,使用处理程序来调用recreate可以解决问题,但会导致眨眼,对用户而言很糟糕。这可能是什么错误?没有recreate的情况下如何使用Handler?

任何想法将不胜感激。谢谢!

最佳答案

在onResume()之前调用OnActivityResult()。您可以做的是在OnActivityResult()中设置一个标志,您可以在onResume()中检入,如果该标志为true,则可以重新创建活动。

您实际上可以做的是完成活动并开始相同的活动,而不是重新创建活动。您将获得相同的效果。可能是这样的:public class MainActivity extends AppCompatActivity {

private boolean shouldRecreate = false;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.d(“AG”, “onCreate() called”);

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

startActivityForResult(intent, 0);

}

@Override

protected void onResume() {

super.onResume();

if (shouldRecreate){

finish();

startActivity(new Intent(this, MainActivity.class));

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if(requestCode == 0){

shouldRecreate = true;

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137296.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • base64是啥原理

    base64是啥原理

    2021年10月12日
    55
  • (数据库)数据库分类

    (数据库)数据库分类1.面向操作的关系型数据库典型性应用领域:ERP,CRM,信用卡交易,中小型电商数据储存方法:表格流行厂商:OracleDatabase,MicrosoftSQLServer,IBMDB2,EnterpriseDB(PostgreSQL),MySQL优点:完善的生态环境保护,事务保证/数据一致性缺点:严苛的数据模型界定,数据库拓展限制,和非结构型的结合应用较难。2.面向数据分析的关系型数据库典型性应用领域:数据仓库,商务智能,数据科学研究数据储存方法:表格流行厂商:OracleE

    2022年6月24日
    34
  • NHibernate介绍「建议收藏」

    NHibernate介绍「建议收藏」现代化大型项目通常使用独立的数据库来存储数据,其中以采用关系型数据库居多。用于开发项目的高级语言(C#、Java等)是面向对象的,而关系型数据库是基于关系的,两者之间的沟通需要一种转换,也就是对象/关系数据库映射(Object/RelationalMapping,简称ORM)。C#可用以解决对象/关系数据库映射的工具有多种,常见的有EF(EntityFramework)、NHiberna…

    2022年7月26日
    8
  • 精彩编码 【进制转换】

    精彩编码 【进制转换】

    2022年1月10日
    49
  • img图片加载失败的处理

    img图片加载失败的处理img图片加载失败的措施很多产品都会要求图片加载失败会出现一个占位符这种类似的图片,强调文本强调文本加粗文本加粗文本标记文本删除文本引用文本H2Ois是液体。210运算结果是1024.插入链接与图片链接:link.图片:带尺寸的图片:居中的图片:居中并且带尺寸的图片:当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。如何插入一段漂亮的代码片去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的代码片.//Anhighlight

    2022年5月16日
    49
  • html怎么将表格居中_HTML居中代码

    html怎么将表格居中_HTML居中代码表格是一种以有组织的方式呈现大量信息的绝佳方式。销售数据、网页流量、股票市场趋势和学生成绩是经常以表格形式呈现的信息示例。使用HTML将表格添加到网页时,将其置于页面中心可能更具视觉吸引力。居中文本和图片通常是通过text-align类或通过CSS来完成的,但是居中表格需要不同的方法。下面提供了有关如何使表格在网页上居中的详细信息。将表格添加到网页时,默认情况下,它与页面或容器的左侧对齐,如下所示。上表的HTML源代码如下。要使此表居中,您需要添加;margin-left:auto;margin-r

    2022年9月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号