导航:首页 > 操作系统 > android退出整个程序

android退出整个程序

发布时间:2022-07-06 10:19:22

‘壹’ android开发中完全退出程序的方法有几种

总体思路就是写在application中,每个activity创建时添加进集合,点退出按钮,调用退出方法.
不管怎么写,都离不开添加,遍历,销毁.....

package com.lindsay.application;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
public class CloseActivityApplication extends Application
{
private List<Activity> activitys;
// 每启动一个Activity---》放进集合
public void putActivity(Activity activity)
{
if (activitys == null)
{
activitys = new ArrayList<Activity>();
}
activitys.add(activity);
}
// 退出操作
public void exit()
{
// 销毁Activity
try
{
for (Activity a : activitys)
{
if (a != null)
{
a.finish();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
System.exit(0);
}
}
}

‘贰’ 安卓系统怎么才能把那后台运行的程序关闭,谢谢!

安卓android后台的软件自动启动程序 - 使用android手机必读(精华中的精华)2011-08-25 16:06不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。(这里解决了大家非要关进程的误区!)

到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显着的提高运行速度。但一些小程序,完全可交由系统自己管理。

谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?(告诉我们如何合理使用进程管理软件)
还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。(跟塞班也不一样,案桌不容易死机重启)

以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。

‘叁’ Android开发:现在的app如何实现程序的彻底退出呢

Intent intent = new Intent(); intent.setAction(GlobalVarable.EXIT_ACTION); // 退出动作 this.sendBroadcast(intent);// 发送广播 super.finish(); //退出后台线程,以及销毁静态变量 System.exit(0);

‘肆’ android 开发应用程序中,退出功能怎么做啊

可以使用java的回收机制,也能使用android特有的活动生存周期,以下方法均可尝试使用:
1.System.gc(); 提示系统回收资源
2.System.exit(0); 系统退出
3.this.finish();在activity中调用结束该活动,如果是唯一运行的活动则应用程序结束
4.onDestroy();activity结束时调用,可以写一些释放资源的程序

‘伍’ android关闭应用程序

Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法。

1. Dalvik VM的本地方法
android.os.Process.killProcess(android.os.Process.myPid()) //获取PID
System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出

2. 任务管理器方法
首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限
ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
系统会将,该包下的 ,所有进程,服务,全部杀掉,就可以杀干净了,要注意加上
<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"></uses-permission>

3. 根据Activity的声明周期
我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志 Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口
Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent);
接下来在B窗口中需要退出时直接使用finish方法即可全部退出。

4.自定义一个Actiivty 栈,道理同上,不过利用一个单例模式的Activity栈来管理所有Activity。

不过建议使用第一种方式来退出应用程序

‘陆’ Android中按返回键怎么退出一个用程序

重写activty的onkeydown在用户按下返回键的时候调用,所以我们可以通过重写onkeydown的方法实现,还有可能到了MainActivity前面还有其他acitivty存活这,我们需要在onkeydown的时候把所有的activity都结束掉,为了实现这个我们先定义一个BaseActivity,在Oncreate和ondestroy生命周期里存储acitivty的引用
用一个List集合存储存活的acitivity,我们把list作为application成员
写一个MyApp类,作为程序启动的application

public class MyApp extends Application{
private List<Activity> activities = new ArrayList<Activity>();
public List<Activity> getActivities(){
return activities;
}
}

BaseActivity代码如下
class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApp)getApplication()).getActivities().add(this);
}

@Override
protected void onDestroy() {
super.onDestroy();
((MyApp)getApplication()).getActivities().remove(this);
}

}

以后工程里的所有Activity都继承于BaseActivity即可

最后是MainAcitivty的代码,在onkeydown方法里遍历list集合,调用每个activity的finish方法即可

public class MyActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
List<Activity> activities = ((MyApp)getApplication()).getActivities();
for(Activity activity:activities){
activity.finish();
}
return super.onKeyDown(keyCode, event);
}
}

‘柒’ Android如何退出程序

如果退出整个程序,如下操作:方式一:Intent intent=new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);this.startActivity(intent);System.exit(0); 方式二:android.os.Process.killProcess(android.os.Process.myPid()); android 完全退出程序有几个activity,有一需求是在一个activityA点击back键退出系统而不是跳到之前的activity首先想到的是清空activityA的堆栈,使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 但是该activityA不是已经存在于堆栈底端的,所以清除的只是堆栈中该activityA上面的activity,但后退后还是会返回堆栈中该activityA下面的activity。

‘捌’ 在Android开发中,如何结束整个应用程序

每个activity都finish,每个服务都stopservice,就可以。
也可以调用system.exit(0);

‘玖’ 安卓手机关闭后台应用方法 如何彻底退出后台应用

若使用的是vivo手机,可以从屏幕底部中间往上滑后停顿调出后台应用(部分机型需点击左键),按住软件图标上滑,即可关闭后台运行的应用。

阅读全文

与android退出整个程序相关的资料

热点内容
数字电视节目已加密怎么弄 浏览:892
大连php培训学校 浏览:985
怎么指定定向流量app的免流 浏览:900
华为云服务器有啥软件 浏览:654
礼记正义pdf 浏览:988
CorePDF 浏览:733
python多文件调用 浏览:329
linux如何用python 浏览:188
超易学的python 浏览:159
控制面板命令行 浏览:51
为什么空气难压缩是因为斥力吗 浏览:643
郭天祥单片机实验板 浏览:601
服务器有什么危害 浏览:258
饥荒怎么开新的独立服务器 浏览:753
文件夹变成了 浏览:560
linuxpython绿色版 浏览:431
怎么下载小爱同学音箱app 浏览:554
python占位符作用 浏览:76
javajdbcpdf 浏览:543
php网页模板下载 浏览:192