前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android onresume函数,android – 在Activity中重新创建后未调用onResume

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

作者头像
全栈程序员站长
发布2022-09-05 10:58:25
3.3K0
发布2022-09-05 10:58:25
举报
文章被收录于专栏:全栈程序员必看

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

在应用程序设置中进行某些更改时,我在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.cn/137296.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档