android 怎么在其他activity中杀死主activity
4个回答
2016-03-21 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
直接调用activity的finish()方法即可关掉当前这个activity.
在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
1.通过pid
int pid = android.os.Process.myPid(); //获取当前应用程序的PID
android.os.Process.killProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2.通过ActivityManager
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
1.通过pid
int pid = android.os.Process.myPid(); //获取当前应用程序的PID
android.os.Process.killProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2.通过ActivityManager
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
展开全部
activity没有主次之分,只有一个activity跳到另一个activity,想结束掉之前的activity,1,可以在跳转的时候把他finish掉,2,在另一个activity中拿到它的引用调用finish,3,可以写个父类的baseactivity,写个application在里面建一个list,然后在baseactivity里面oncreate方法里面把打开的activity都add进去,然后想要结束哪个activity就遍历list里面的activity,找到你要结束的activity,finish掉就可以了!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Android系统进程优先级的高低通常是这样判断的:
1)如果一个app正在与用户交互,那么它所在的进程具有最高优先级;
2)如果一个app是可见的,例如被一个对话框部分遮挡,它所在进程具有第二高的优先级;
3)如果app当前是不可见的,也就是被切换到了后台,则它所在进程具有第三高的优先级;
4)如果这个后台app启动了一个service,则它比一般的后台app优先级高一些;
5)最后,如果一个进程里没有包含任何app,那么这个进程的优先级是最低;
当系统资源严重不足时,任何一个进程都有可能被杀掉,而当用户想回到一个已经不存在于内存中的Activity时,系统只得新建一个这样的Activity对象并调用它的onCreate()方法进行恢复。因此有时就会出现如下情况:大部分时间运行正常,偶尔在切换Activity时出现空指针异常导致强制关闭,这多半是在onCreate()方法里使用了已经被重置为空的对象造成的。即使不出现异常,也会造成表单数据丢失,严重影响用户体验。
要解决这类问题:
1)不能抱现在手机内存大,进程一般不会被杀掉的侥幸心理,而应该以app随时都会被杀掉的态度来谨慎处理。
2)在适当的位置将Activity所需数据进行持久化(从ram复制到rom或sd卡),并在onCreate()方法里利用这些数据恢复现场,通常包括文档类型和用户状态类型。
对于文档类型:当用户离开当前Activity时,在onPause()方法里将当前正在编辑的文档持久化到SQLite数据库或者XML文件中,若当前Activity被杀死,可在onCreate()方法中恢复。
对于状态类型:可通过SharedPreferences在onPanse()方法中将当前状态信息保存,比如保存某个应用的视图配置信息,若当前Activity被杀死,可在onCreate()方法中恢复,这样就可以确保一个较好的用户体验。
1)如果一个app正在与用户交互,那么它所在的进程具有最高优先级;
2)如果一个app是可见的,例如被一个对话框部分遮挡,它所在进程具有第二高的优先级;
3)如果app当前是不可见的,也就是被切换到了后台,则它所在进程具有第三高的优先级;
4)如果这个后台app启动了一个service,则它比一般的后台app优先级高一些;
5)最后,如果一个进程里没有包含任何app,那么这个进程的优先级是最低;
当系统资源严重不足时,任何一个进程都有可能被杀掉,而当用户想回到一个已经不存在于内存中的Activity时,系统只得新建一个这样的Activity对象并调用它的onCreate()方法进行恢复。因此有时就会出现如下情况:大部分时间运行正常,偶尔在切换Activity时出现空指针异常导致强制关闭,这多半是在onCreate()方法里使用了已经被重置为空的对象造成的。即使不出现异常,也会造成表单数据丢失,严重影响用户体验。
要解决这类问题:
1)不能抱现在手机内存大,进程一般不会被杀掉的侥幸心理,而应该以app随时都会被杀掉的态度来谨慎处理。
2)在适当的位置将Activity所需数据进行持久化(从ram复制到rom或sd卡),并在onCreate()方法里利用这些数据恢复现场,通常包括文档类型和用户状态类型。
对于文档类型:当用户离开当前Activity时,在onPause()方法里将当前正在编辑的文档持久化到SQLite数据库或者XML文件中,若当前Activity被杀死,可在onCreate()方法中恢复。
对于状态类型:可通过SharedPreferences在onPanse()方法中将当前状态信息保存,比如保存某个应用的视图配置信息,若当前Activity被杀死,可在onCreate()方法中恢复,这样就可以确保一个较好的用户体验。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像没听过这种说法,我只知道用activity完全覆盖另一个activity会进入stoped的状态,好像不会出现killed的状态~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询