导航:首页 > 操作系统 > androidapp被回收

androidapp被回收

发布时间:2022-05-19 16:38:19

android app后台运行一段时间后,在回到前台,之前的一些对象会被回收

出现这种情况最主要的原因还是内存不足的问题,被系统自动回收了。如果LZ想保存现场的话,建议LZ使用onSaveInstanceState这个方法保存现场

Ⅱ 如何防止 android service被回收

在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.v("TrafficService","startCommand");

flags = START_STICKY;
return super.onStartCommand(intent, flags, startId);
}

如何实现一个不会被杀死的进程
看Android的文档知道,当进程长期不活动,或系统需要资源时,会自动清理门户,杀死一些Service,和不可见的Activity等所在的进程。
但是如果某个进程不想被杀死(如数据缓存进程,或状态监控进程,或远程服务进程),应该怎么做,才能使进程不被杀死。
add android:persistent="true" into the <application> section in your AndroidManifest.xml
切记,这个不可滥用,系统中用这个的service,app一多,整个系统就完蛋了。
目前系统中有phone等非常有限的,必须一直活着的应用在试用。

如何防止Android应用中的Service被系统回收?
很多朋友都在问,如何防止Android应用中的Service被系统回收?下面简单解答一下。

对于Service被系统回收,一般做法是通过提高优先级可以解决,在AndroidManifest.xml文件中对于intent-filter可以通过android:priority = "1000"这个属性设置最高优先级,1000是最高值,如果数字越小则优先级越低,同时实用于广播,推荐大家如果你的应用很重要,可以考虑通过系统常用intent action来触发。

Ⅲ android service 什么情况下会被系统回收

android service 开机启动后被被自动关闭掉原因:
Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用。当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存。这样就能保证真正对用户有用的程序仍然再运行。如果你的 Service 碰上了这种情况,多半会先被杀掉。但如果你增加 Service 的优先级就能让他多留一会,我们可以用 setForeground(true) 来设置 Service 的优先级。
默认启动的 Service 是被标记为 background,当前运行的 Activity 一般被标记为 foreground,也就是说你给 Service 设置了 foreground 那么他就和正在运行的 Activity 类似优先级得到了一定的提高。当让这并不能保证你得 Service 永远不被杀掉,只是提高了他的优先级。

Ⅳ android 什么时候会被回收

在整个应用结束的时候,就是Application销毁后,但是一般退出应用后Application不会立即销毁,所以建议手动销毁一些必要的static 变量,还有android开发中尽量少使用static变量,容易内存溢出,和出现一些异常。

Ⅳ Android后台的App被回收,但未完全退出,重新从任务栏打开时会报错,可能是什么错如何避免

在 ondestory 里面把跟app有关的所有东西都干掉就ok了,我一般都是在application里面建一个list 把所有的activity都存进来,退出时或者ondestory时 挨个finish

Ⅵ 如何判断 android被 系统回收

我觉得没有显式的判断方法。
Activity就像Java中的一个类,类可以实例化出很多个对象,但你无法判断该类所有的对象是否已经被内存回收了。
android中显式的调用finish()方法,或者隐身的(比如按“Back”键导致该activity被finish()掉),会导致该activity被回收。

Ⅶ 如何防止android应用中的service被系统回收

永不被kill是不可能的,android系统应用都有可能会被kill,不要说用户应用了,只能说被kill以后还能重新启动。
Android中,当Service被kill后,如果重启需要使用BroadcastReceiver来实现,即广播接收者,例如利用BroadcastReceiver注册网络广播或者开关机广播,当接收到广播后直接启动service,这样就可以保证service被kill后,自动启动。
实现代码:
1.在配置文件AndroidManifest.xml中向系统注册BroadcastReceiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

2.需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

3.在Receiver中就可以添加开机,或者网络状态改变后需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

}
}
4.执行操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 这样即可开机,或者网络状态改变后启动Service了。

Ⅷ android进程被系统回收(杀死)

Activity绑定Service,那么这个service的生命周期跟activity相关。会随着activity结束而结束。

绑定的service跟activity是同一个进程的。

如果service配置一个单独的进程,应该是通过startService来启动的,bindService不行吧?
系统资源不足时,会有一个策略来回收进程,优先级的回收顺序是 Empty process、Background process、Service process、Visible process、Foreground process。
参见www.cnblogs.com/bastard/archive/2012/08/17/2644169.html

Ⅸ 安卓手机回收站删除App怎么找回

摘要 你好呢亲,可以按照以下步骤操作。

Ⅹ android static 什么时候被回收

android中,定义的static变量属于全局变量,不会被GC回收,它们会一直占用内存。直到程序结束时才会被回收。
Android是用Java开发,其静态变量的生命周期遵守Java的设计。静态变量是在类被load的时候分配内存的,并且存在于方法区。当类被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。
一、静态变量在类被加载的时候分配内存。
当启动一个app的时候,系统会创建一个进程,此进程会加载一个Dalvik VM的实例,然后代码就运行在DVM之上,类的加载和卸载,垃圾回收等事情都由DVM负责。也就是说在进程启动的时候,类被加载,静态变量被分配内存。
二、静态变量在类被卸载的时候销毁。
一般情况下,所有的类都是默认的ClassLoader加载的,只要ClassLoader存在,类就不会被卸载,而默认的ClassLoader生命周期是与进程一致的。

阅读全文

与androidapp被回收相关的资料

热点内容
暗黑的服务器为什么维护 浏览:621
android内存溢出的原因 浏览:15
标志307的压缩比是多少 浏览:633
服务器启动为什么叫三声 浏览:995
追风筝的人英文pdf 浏览:936
解压小熊手机壳 浏览:346
成都市区建成面积算法 浏览:660
智能家居单片机 浏览:97
买男装用什么app好 浏览:855
文件夹合并了怎么拆开 浏览:260
波段副图源码无未来函数 浏览:89
livecn服务器地址 浏览:259
程序员这个工作真的很吃香吗 浏览:847
程序员和数学分析师待遇 浏览:681
压缩气弹簧怎么拆 浏览:324
华为公有云服务器添加虚拟ip 浏览:211
程序员和运营哪个累 浏览:27
抖音安卓信息提示音怎么设置 浏览:456
光速虚拟机的共享文件夹 浏览:251
程序员培训机构发的朋友圈真实性 浏览:744