您现在的位置是:首页» windows系统» android设置退出程序,android退出应用方法

android设置退出程序,android退出应用方法

2023-12-05 03:53:21
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! 1.后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,附代码:public boolean onCreateOptionsMe

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

1.后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,附代码:

public boolean onCreateOptionsMenu(Menu menu)

super.onCreateOptionsMenu(menu);

MenuItem item= menu.add(Menu.NONE, Menu.NONE, Menu.NONE,"Exit");

item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener()

public boolean onMenuItemClick(MenuItem item)

2.这样太不方便,每次退出界面之后应用程序还在运行,

网上提供了几种方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this);添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。

import android.app.AlertDialog;

import android.app.Application;

import android.content.DialogInterface;

import android.content.Intent;

public class SysApplication extends Application{

private List mList= new LinkedList();

private static SysApplication instance;

public synchronized static SysApplication getInstance(){

instance= new SysApplication();

public void addActivity(Activity activity){

for(Activity activity: mList){

3.在应用程序里面的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)

public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

SysApplication.getInstance().addActivity(this);

Android怎么退出整个应用程式

在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程式。

在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程式。

Android中,退出应用程式的方式:

int pid= android.os.Process.myPid();获取当前应用程式的PID

android.os.Process.killProcess(pid);杀死当前程序

这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。

ActivityManager manager=(ActivityManager)context.getSystemService(ACTIVITY_SERVICE);获取应用程式管理器

manager.killBackgroundProcesses(getPackageName());强制结束当前应用程式

这种方式退出应用,会结束本应用程式的一切活动,因为本方法会根据应用程式的包名杀死所有程序包括Activity,Service,Notifications等。

其实还有一种方法也不错,把MainActivity设定为singleTop,先跳转到MainActivity然后finish就行,不过要注意停掉相应的Service

大家都知道 Android的 Activity是存著历史栈的,比如从 A-> B-> C,C完成 finish后回到 B,把所有的Activity都 finish了,程式就自然退出了。当然在 finish的同时也需要是否自己程式的其他资源。所以需要想个办法把 Activity给存起来。然后在程式退出的地方呼叫它们的 finish()方法。

使用全域性变数。对了,第一个想到的就是继承 Application,程式码入下。

public class AgentApplication extends Application{ private List<Activity> activities= new ArrayList<Activity>(); public void addActivity(Activity activity){activities.add(activity);}@Overridepublic void onTerminate(){super.onTerminate();for(Activity activity: activities){activity.finish();}onDestroy();System.exit(0);}}

然后在 Activity onCreate的时候来呼叫 addActivity(),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例例项。其实根本不需要。在 Activity中使用 this.getApplication()就可以了。

最后在你需要推出程式的地方呼叫 application.onTerminate()就可以了。记住:super.onTerminate()必须呼叫,程式码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。

执行以上程式码后,在LogCat中会出现一行提示:

Process包名(pid xxxxx) has died.证明你的程式退出了。现在你可以测试了。

有几种方法,一种是:程式退出时,下方有写在按一次退出程式

第二种,进设定-应用程式-正在执行这一栏自己关

有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。后面添加了一个选单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,附程式码: public boolean onCreateOptionsMenu(Menu menu){super.onCreateOptionsMenu(menu); MenuItem item= menu.add(Menu.NONE, Menu.NONE, Menu.NONE,"Exit"); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener(){public boolean onMenuItemClick(MenuItem item){System.exit(0); return true;}});return true;}想到这样太不方便了,每次退出介面之后应用程式还在执行,今天查了下资料终于把这个问题给解决了,网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this);添加当前Acitivity到ancivitylist里面去,最后在想退出的时候呼叫SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程式。附程式码:import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Intent; public class SysApplication extends Application{ private List mList= new LinkedList(); private static SysApplication instance; private SysApplication(){} public synchronized static SysApplication getInstance(){ if(null== instance){ instance= new SysApplication();} return instance;} add Activity public void addActivity(Activity activity){ mList.add(activity);} public void exit(){ try{ for(Activity activity: mList){ if(activity!= null) activity.finish();}} catch(Exception e){ e.printStackTrace();} finally{ System.exit(0);}} public void onLowMemory(){ super.onLowMemory(); System.gc();}}在应用程式里面的activity的oncreate里面新增SysApplication.getInstance().addActivity(this)如:public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);

你可以长按主屏键后,在其中关闭应用程式。但并不能完全退出执行记忆体

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com