android双击退出如何实现android的连续点击两次会退键退出

android双击退出  时间:2021-06-15  阅读:()

android怎样点击两下退出程序

在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实现退出功能

Android Studio中,随时随地的退出程序(记得导入相应的包,可以设置自动导入所需的包的,下面的代码还没有导入包的部分): ①新建一个 ActivityCollector 类,作为活动管理器,代码如下所示: public class ActivityCollector { public static List<Activity> activities = new ArrayList<>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeActivity(Activity activity) { activities.remove(activity); } public static void finishAll() { for (Activity activity : activities) { if(!activity.isFinishing()) { activity.finish(); } } activities.clear(); //以下是杀死当前程序进程的代码,保证程序彻底退出。

android.os.Process.killProcess(android.os.Process.myPid()); } } ②再新建一个类BaseActivity,并让所有活动继承这个类,也就是其他的全部活动都改为extends BaseActivity,而不是原来的extends AppCompatActivity。

public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("BaseActivity", getClass().getClass().getSimpleName()); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } } ③在你想要退出程序的页面(Activity)的setContentView(R.layout.*****); 下面加上如下代码,从而实现点击一个按钮退出整个程序。

Button button3 = (Button) findViewById(R.id.*****); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ActivityCollector.finishAll(); } }); //*号部分看具体情况而定

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的连续点击两次会退键退出

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }

百星数据(60元/月,600元/年)日本/韩国/香港cn2 gia云服务器,2核2G/40G/5M带宽

百星数据(baixidc),2012年开始运作至今,主要提供境外自营云服务器和独立服务器出租业务,根据网络线路的不同划分为:美国cera 9929、美国cn2 gia、香港cn2 gia、韩国cn2 gia、日本cn2 gia等云服务器及物理服务器业务。目前,百星数据 推出的日本、韩国、香港cn2 gia云服务器,2核2G/40G/5M带宽低至60元/月,600元/年。百星数据优惠码:优惠码:30...

DiyVM(50元起)老牌商家,香港沙田CN2直连vps/不限流量/五折终身优惠

diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...

Linode($5/月),新用户注册送100美元,11个数据中心云服务器

关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...

android双击退出为你推荐
贸易配额进出口配额是怎么回事情?dnf装备代码DNF代码,装备,不是EX郭列90后三无人物,如何创业?如何去实现人生价值?比思论坛永久域名不知道为什么 比思论坛的网站打不开 怎么办呐gbk内码Gbk内码查询particular教程AE的particular的particle设置ps5教程photoshop cs 教程 最好有视频的飞信发信息要钱吗用飞信发短信要钱吗?storage是什么意思请问storage/emulated/0里的文件能不能删掉?会有什么影响吗?dawn是什么意思冰火是什么意思
长沙域名注册 便宜vps hkbn 分销主机 新世界电讯 三拼域名 双十一秒杀 如何注册阿里云邮箱 电信托管 shopex主机 吉林铁通 美国独立日 上海电信测速 cxz 徐州电信 tracker服务器 phpinfo restart cloudflare cc加速器 更多