- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个主要 Activity 和一个服务。主要 Activity 为服务准备数据。服务消费数据后,它向mainactivity广播请求,mainactivity准备一些新数据并传递给服务......
mainactivity 允许用户操作数据。如果 mainactivity 不在前台,有时它会被杀死。
[问题1]:我这里有点糊涂了,我觉得mainactivity还在,但是它的UI线程和view被清空了?所以我不能使用 UI 线程从 View 中读取值,然后将数据发送到服务?
[问题 2]:如何检测 mainactivity 被杀死,然后服务可以切换到自己准备数据?
[问题3]:如何强制系统'kill'? mainactivity 以便我可以调试程序?
谢谢
更新:我读过该图可能时间但我仍然不能完全理解这种行为。事实上,我的问题更像是这样:在任务管理器中,我的应用程序有 1 个 Activity 和 1 个服务,消耗了 20MB 内存。半小时后,我的应用程序有 1 个 Activity 和 1 个服务,消耗了 1.5MB 内存。显然, Activity 发生了一些事情,那是什么?请注意:我的 Activity 使用 UI thraad 循环来准备服务数据。 On stop/on resume 对 UI thead of activity 没有影响,那我怎么知道 UI thread activity 什么时候会被杀死呢?
更新:我用 logcat 进行了测试,(在调用 onpause/onstop/ondestroy 时添加日志消息..),但是,当应用程序内存从 20mb 下降到 1.5mb 时,没有调用任何消息。
05-21 23:33:27.709: I/mytag(32012): 调用 onResume
05-21 23:33:30.606: I/mytag(32012): 调用 onPause
05-21 23:33:31.596: I/mytag(32012): 调用了 onStop
[到目前为止,应用程序管理器显示我的应用程序使用了 20mb 内存]
05-21 23:36:05.176: D/skia(32012): 从字体缓存中清除 144K [8 个条目]
05-21 23:36:05.246: D/dalvikvm(32012): GC_EXPLICIT 释放 1240K,52% 释放 4329K/8839K,外部 1716K/2137K,暂停 54ms
05-22 00:00:10.226: D/dalvikvm(32012): GC_EXPLICIT 释放 933K,53% 释放 4226K/8839K,外部 1684K/2137K,暂停 85ms
05-22 00:36:10.166: D/dalvikvm(814): GC_EXPLICIT 释放 56K,49% 释放 2775K/5379K,外部 1625K/2137K,暂停 61ms
[到目前为止,应用程序管理器显示我的应用程序使用了 1.5mb 内存]
我等了半个小时,我没有再收到任何 logcat 文本,测试结束。
我想检测该系统清理我的应用程序内存,但它不会触发任何“onpause、/onstop 等”,我如何检测它,然后告诉服务做某事?谢谢
最佳答案
请查看 Activity 生命周期。
http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
2 和 3 的答案就在那里(为 onStop 或 onDestroy 实现一些东西来“告诉”服务该 Activity 正在被杀死/等等)。 OnDestroy 是唯一“真正”将要被杀死的时间。
关于第一个问题,我不完全理解你的问题,所以也许你可以更好地解释一下?关于第一点,我唯一的想法是您正在处理重新创建 Activity 的方向更改(这可能会导致一些问题,具体取决于您创建/添加 View 的方式)。
编辑:从上面发布的链接..
- 如果一个 Activity 失去了焦点但仍然可见(即,一个新的非全尺寸或透明的 Activity 将焦点放在您的 Activity 之上),它将被暂停。暂停的 Activity 是完全活跃的(它维护所有状态和成员信息并保持附加到窗口管理器),但在内存极低的情况下可能会被系统杀死。
- 如果一个 Activity 被另一个 Activity 完全遮挡,则它被停止。它仍然保留所有状态和成员信息,但是,它不再对用户可见,因此它的窗口被隐藏,并且当其他地方需要内存时它通常会被系统杀死。
-如果一个 Activity 被暂停或停止,系统可以通过要求它完成或简单地杀死它的进程来从内存中删除该 Activity 。当它再次显示给用户时,必须完全重启并恢复到之前的状态。
关于android mainactivity和服务流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651441/
因此,我正在学习 Lynda.com 上关于使用 Google map V2 构建移动应用程序的教程,并且我正在学习一个让您创建 map 应用程序的部分,该应用程序以编程方式查找位置,而不是依赖于se
我有一个 Mainactivity,其中包含一个 Layout,它是 4 个子布局的父级。单击子布局后,我将使用一个新 fragment 替换主布局。但我无法在按下返回按钮后返回 MainActivi
如你所见 this@MainActivity 或 MainActivity@this 在 kotlin 中开始 Activity 时有效。我试图找出答案,但我什么也没找到。谁能知道它的确切区别以及哪个
Solve by using getActivity() 我有这个 MainActivity.java 和 RepeatEntry.java 在我的 MainActivity 中,我有这个代码来实现
我正在尝试将 Google Analytics 集成到我的应用程序中,并遵循来自 here 的教程一切就绪: 我有一个 MainActivity,它扩展了 Activity 并附加了三个 Tab Fr
EditText 对象未创建,为什么? EditText editText=(EditText)findViewById(R.id.edittext); 这适用于扩展 AsyncTask 类的应用程序
所以我正在尝试了解 Android Fragments。如果我将以下代码放入我的 MainActivity 中: public void getMessage(Object obj) { Lo
我试图在我的Android设备上运行我的Android应用程序,但它一直显示我的主活动不存在,尽管我的主活动类在那里。我试图创建一个新的项目,然后复制我以前的代码,它在一段时间内奏效了。但随后它又产生
//主要活动 package com.going.books; import androidx.appcompat.app.AppCompatActivity; import androi
这似乎是一个我不好意思问的基本问题,但我对我的 Fragment 学习曲线感到非常沮丧,以至于我会暴露我的无知。 教科书中的一个例子,它削减了很多角落,使得扩展变得困难,即使它们有效,也没有按钮可以点
我正在将我的启动 Activity 从“MainActivity”更改为“RealMain”我在 list 中声明了这一点,但是 MainActivity 仍然首先出现。有人可以启发我吗?代码来 se
它失败了@ below line - bindService(intent, m_serviceConnection, Context.BIND_AUTO_CREATE); 下面是轨迹.... Act
我的项目在调试状态下正常工作。当我打开MainActivity.java文件时,这在import androidx.annotation.NonNull;上显示了问题 并在下面显示错误。 FAILUR
我在 MainActivity 类中看到了这样的代码: class MainActivity : AppCompatActivity() { private val languages = a
我的问题是关于如何制作启动屏幕,并在 MainActivity 完成渲染时完成启动屏幕,而不是通过设置超时。 我已经搜索过如何制作闪屏并且我已经做到了,但主要是他们使用超时来设置闪屏何时必须关闭/完成
大家好,我正在尝试为我的 Android 手机开发一个手电筒应用程序,但是当我运行它时出现错误。 GUI 有 2 个按钮:1 个用于开灯,另一个用于关灯 这是代码: package com.examp
如何解决这个问题? MainActivity.this is not an enclosing class. 谢谢 public class uploadToServer extends AsyncT
我的 logcat 中出现一些错误,并且我的应用程序无法在我的智能手机上运行...我更改了 list 和 MainActivity 中的一些代码(名为 HomaActivity ) 这是我的 list
我想知道使用单例 MainAcitivity 是否是一个糟糕的设计选择,如下所示: public class MainActivity extends AppCompatActivity ... {
我正在创建一个像 WhatsApp 一样的应用程序,但我遇到了问题。该应用程序应该进入 LoginActivity,但它直接进入 MainActivity,而无需我登录。 我尝试更改 Android
我是一名优秀的程序员,十分优秀!