- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个没有 UI 的简单 Activity 。我想在调用期间检查 Activity 的生命周期方法。
当调用通知到达时,没有按预期发生任何事情。当我接听电话时,通话 Activity 将掩盖我的 Activity 。因此,理想情况下,应该立即调用 onStop()
。我检查了日志,只有 onPause()
在接受调用时被调用。但在 2-3 秒后 onStop()
也被调用。
Activity
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
Log.e(TAG, "onStart: ");
}
@Override
protected void onStop() {
super.onStop();
Log.e(TAG, "onStop: ");
}
@Override
protected void onPause() {
super.onPause();
Log.e(TAG, "onPause: ");
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG, "onResume: ");
}
}
list
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
日志
05-17 22:10:25.025 E/MainActivity: onStart:
05-17 22:10:25.054 E/MainActivity: onResume:
When call has been accepted:
05-17 22:10:34.405 E/MainActivity: onPause:
After 2-4 seconds:
05-17 22:10:38.144 E/MainActivity: onStop:
根据 documentation onStop()
的:
Called when you are no longer visible to the user. You will next receive either onRestart(), onDestroy(), or nothing, depending on later user activity.
在这里,另一个 Activity 覆盖并隐藏了我的 Activity 。因此,onStop()
应该在 onPause()
之后立即调用。
我已经在 Moto G4 设备和 Nexus 5 模拟器上对其进行了测试。两者都表现出相同的行为。delayed onStop() 调用的原因是什么?
谁能解释一下内部细节?
最佳答案
基于documentation :
After receiving
onPause()
call you will usually receive a following call to onStop() (after the next activity has been resumed and displayed), however in some cases there will be a direct call back to onResume() without going through the stopped state.
虽然 onStop()
的文档有点令人费解,它声称一旦 Activity 不再可见就会调用它,但在它被调用之前有轻微的延迟(这取决于 next正在显示的 Activity )。
如果您接到电话,则在电话进入前台后会出现轻微的延迟。我也在我的个人电话上观察到这种延迟。此延迟将导致 onStop()
调用延迟。
关于java - 来电期间 Activity 生命周期的异常行为 : delayed onStop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50396700/
asyncio.sleep() 的阻塞表亲,time.sleep() , 不能保证它会在请求的时间内休眠。 The actual suspension time may be less than th
在 C# 中,我有以下两个简单示例: [Test] public void TestWait() { var t = Task.Factory.StartNew(() => {
这是一个 linqpad 示例,展示了在短暂延迟后异步执行方法的两种方法。这两个例子似乎做了完全相同的事情。我通常会实现第一个版本(使用 Task.Delay.ContinueWith),但我也看到使
这是一个 linqpad 示例,展示了在短暂延迟后异步执行方法的两种方法。这两个例子似乎做了完全相同的事情。我通常会实现第一个版本(使用 Task.Delay.ContinueWith),但我也看到使
使用 jQuery,我逐渐将“go”类添加到 div div { tranform:translate(20px,20px); opacity:0;
期待: 当 audioplayer.play(atTime: 1) 被调用时,定时器重置为 0,音频播放器在第 1 秒播放 现实: 我试过 delay = 0.000000001, 1, 100000
我一直在阅读 .Net 4.5 中引入的 async/await 语法并对其有所了解。 我找到了简单的示例,其中 Task.Yield 是要走的路,而不是 Application.DoEvents。我
我需要在一个延迟很大的系统中调整PI(D)的增益。这是一个常见的温度 Controller ,但温度探头距离加热器较远。一些进一步的信息: 加热器响应上的任何变化,探头的响应都会延迟约10秒 温度以1
代码很短,但是很经典,单位是秒,就是未测试过服务器资源消耗怎么样: <% Function Delay(s)
为什么这会立即清空文本(忽略延迟)? $('#error_box_text').html('error text').delay(5000).html('') # jQuery 1.4 最佳答案 de
我有一个 $image,我 .fadeIn 和 .fadeOut,然后 .remove .fadeOut 完成。这是我的代码: $image .fadeIn() .fadeOut(func
我希望用户将鼠标悬停在对撞机(只是一个透明矩形)上超过 2 或 3 秒时能够看到描述菜单。我目前正在使用 javaFX 扩展。 我将程序设置为每当我将鼠标悬停在对撞机上时,它都会播放声音效果,但我希望
在我创建的几个 .HTA 脚本中,我需要 VBScript WScript.Sleep 命令,它只是等待几毫秒而不使用 CPU。当我浏览网页时,似乎我不是唯一一个在寻找这个的人: https://ww
我在 javaFX 中创建了一些节点。我需要为每个节点设置动画,以便使用 TranslateTransition 在 Pane 中的某个点到某个点之间进行转换。但我需要使每个节点使用不同的起点独立移动
我需要在用户开始触摸屏幕、移动手指然后结束触摸时执行一些操作。触摸开始工作正常,也可以移动,但触摸结束运行有 0.5-1 秒的延迟。下面有一段代码: -(id) init { if (s
我正在寻找有关 jQuery 的 .delay 函数的帮助。我的网站上有一个弹出表单,我想在 2-3 分钟内随机弹出该表单。我了解如何使用 Math.random(),但我不了解如何使用它生成 120
我无法获取一些 javascript 和 Jquery 来延迟适当的时间。我想更改一些文本,请等待 5 秒钟,然后弹出警报。 代码如下: $('#result').html("Record has p
我有以下 JavaScript 片段: $("#dashboard").addClass("standby").delay(3000).removeClass("standby"); $(".acti
我有以下 JavaScript 片段: $("#dashboard").addClass("standby").delay(3000).removeClass("standby"); $(".acti
我已经编写了一个简单的 jQuery 淡入淡出插件,但我无法让延迟正常工作。它将在第一个项目上起作用,但之后它会被忽略 jQuery (function ($) { $.fn.setupQuo
我是一名优秀的程序员,十分优秀!