当前位置: 首页 > 知识库问答 >
问题:

为什么我的简历被打了两次?

程卓君
2023-03-14

基本上,这就是我正在做的

1) 将AlarmManager设置为执行广播接收器(BCR)

Intent intent = new Intent(m_Context, BCR.class);  
intent.putExtras(extras);  
PendingIntent pendingIntent = PendingIntent.getBroadcast(m_Context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);  
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, StartTime, pendingIntent)  

2) 从BCR启动MyActivity

@Override  
public void onReceive(Context context, Intent intent) {  
    Intent newIntent = new Intent(context, MyActivity.class);
    newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);  
    context.startActivity(newIntent);  
}

3)如果我的活动没有打开,请打开屏幕

@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
    getWindow().addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    setContentView(R.layout.myactivity);  
} 

@Overide  
protected void onNewIntent(Intent intent) {  
    super.onNewIntent(intent);  
}  

出于某种原因,我注意到当MyActivity打开时,它的流程如下所示:

onCreate/onNewIntent-

我不知道为什么它会马上暂停。我注意到这只发生在屏幕被标志打开时。有人知道为什么会这样吗?有什么办法可以防止这种行为吗?

共有3个答案

富建章
2023-03-14

如果您有ES文件资源管理器,则强制停止它。不知何故,它们打断了你的应用程序的生命周期(评论建议某种覆盖)。

我的问题与onResume被引起两次是因为onPence是以某种方式被调用后创建的活动...

这只发生在安装后首次打开或从工作室构建后。

我从另一篇文章中得到了线索,发现这是因为ES文件浏览器。为什么onResume()似乎被调用了两次?

一旦我强制停止ES文件资源管理器,这种打嗝行为就不再发生。。。在尝试了许多其他建议的解决方案之后,知道这一点令人沮丧。因此,要小心任何其他像这样的中断应用程序。

刘瀚
2023-03-14

如果你尝试请求权限每次它可能会导致这样的问题只是检查你是否已经授予他们

requestPermissions会导致:

onCreate
onStart
onResume
onPause
onResume

使用此方法ContextCompat。checkSelfPermission(上下文,权限)在请求权限之前检查权限是否已授予

此方法返回int,您可以使用PackageManager检查它。PERMISSION_GRANTED常数

白飞飙
2023-03-14

为了防止其他人遇到这种情况,我似乎只有在通过XML布局在活动内部膨胀片段时才会注意到这种行为。我不知道这种行为是否也发生在碎片的兼容性库版本中(我使用android.app.碎片)

似乎在调用任何添加的片段之前,活动将调用一次activity#onResume,然后再次调用activity#onResume

  1. 活动:onCreate
 类似资料:
  • 我的建议是正确执行并预先准备正确的操作,除了执行两次。我希望它只执行一次。应该触发通知的方法只执行一次,因为startTestSuite标题只在日志中打印一次。bean和上下文是在TestNG类中生成的。我尝试在initSpring()方法上使用@beforeClass和@beforeSuite标记运行它,结果相同。 进一步的上下文:这样做的目的是获取测试套件何时开始和结束的时间戳,以及各个测试何

  • 问题内容: 我的活动课在这里: 和相机预览类在这里: 但是,当我测试该类时,似乎首先调用onResume(),然后在1或2秒后再次调用。因此,相机必须再次刷新。如果我根本没有onResume(),则摄像头预览稳定,但是如果我从主屏幕或其他某个应用再次切换到该应用,则会崩溃。我发现onPause()不会影响任何一个。我的代码正确吗?我应该添加/删除哪些内容以使其不会再次刷新并且在应用切换后仍然不会崩

  • 我做了一个简单的组件,当点击按钮时,状态a的数量会增加。 我在组件内部写了来检查它何时呈现。我期望在单击按钮时执行一次,因为组件的状态已更改。 但是,我错了,执行两次。 有什么不对劲吗?还是正确?我错过了什么? 这是我的密码 此应用程序由CRA使用typescript创建。这就是全部。 谢谢。 ****加上****** 我检查了React-dev tools Profiler,以检查在单击按钮并更

  • 问题内容: 我有一堂课,我已经简化为: 我想对这个东西进行排序。所以我创建了一个简单的copmarator: 然后,我使用的两个参数形式。 这对于我的测试用例来说很好用,但是有时由于数组以奇怪但可重复的顺序结束而完全出错。怎么会这样? 问题答案: 整数溢出…或更确切地说是下溢。 相反,进行显式比较: 如果您确定差异不会“绕回”,则可以使用减法。例如,当所讨论的值被约束为非负数时。

  • 问题内容: 我有一个想法,可能是因为我正在做一些样式设计来更改单选按钮,但是我不确定。我正在设置一个onClick事件,该事件两次调用了我的函数。我已删除它以确保它没有在其他地方被触发,并且onClick似乎是罪魁祸首。 我的功能目前仅是运输选项的简单控制台日志: 如果没有任何理由可以在这里看到为什么会发生这种情况,我可以发布其余代码,但是有很多方面,我认为这与之无关,但是我认为这是一个很好的起点