网站流量指标有哪些苏州wordpress
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:31
当前位置: 首页 > news >正文
网站流量指标有哪些,苏州wordpress,seo的全称是什么,珠海网站建设网络有限公司Android#xff1a;销毁所有的Activity退出应用程序几种方式 author#xff1a;DRC工作室 我们都知道#xff0c;Activity是存放在栈中。在默认的情况下#xff08;standard#xff09;Activity在栈中是以先进后出、后进先出的方式进行存放。最开始出现的Activity会存在栈…
Android销毁所有的Activity退出应用程序几种方式 authorDRC工作室 我们都知道Activity是存放在栈中。在默认的情况下standardActivity在栈中是以先进后出、后进先出的方式进行存放。最开始出现的Activity会存在栈底最新启动的Activity总是会存在栈顶。当我们开启的Activity越来越多当前想在某个界面退出当前应用程序的时候或者双击返回键退出当前应用程序。这个时候只能一个一个的把当前所有启动的Activity销毁直到清空栈中的所有Activity应用程序才能退出。下面给大家介绍四种常用的退出应用程序的方法希望能够更好的帮助大家开发 销毁所有Activity退出应用程序常见的方式有下面四种 (1) System.exit(0) 使用系统的方法强制退出 (2) 抛出异常强制退出 (3) 使用Application退出 (4) 使用广播退出 第一种方式 System.exit(0)表示的是终止程序终止当前正在运行的 Java 虚拟机在java中我们也使用这种方式来关闭整个应用在前期很多开发人员都是使用这种方式我自己在开发项目过程中也用过这种方式来退出但是有时候会在部分机型中当退出应用后弹出应用程序崩溃的对话框有时退出后还会再次启动少部分的用户体验不太好。但现在也依旧还会有少部分的开发人员会使用这种方式因为使用方式很简单只需要在需要退出的地方加上这句代码就行。 第二种方式 抛出异常强制退出 这种方式现在基本上已经看不到了用户体验比第一种方式更差就是让抛出异常、是系统崩溃、从而达到退出应用的效果。 接下来我们主要讲解后面两种这两种在开发过程中经常使用 第三种方式 使用Application退出 目前比较常用方法之一我们都知道application是Android的系统组件当应用程序启动时会自动帮我们创建一个Application而且一个应用程序只能存在一个Application它的生命周期也是最长的如果需要使用自己创建的Application时这个时候我们只需要在Androidmanifest.xml中的Application 标签中添加name属性把创建的Application完整的包名类名放进了就行了。 那么我们如何使用Application来退出当前的应用程序呢 我们来看下我写的一个使用Application来退出应用程序的Demo: 创建一个继承Application的类 public class myApplication extends Application { private ListActivity oList;//用于存放所有启动的Activity的集合 public void onCreate() { super.onCreate(); oList new ArrayListActivity(); } /** * 添加Activity */ public void addActivity(Activity activity) { // 判断当前集合中不存在该Activity if (!oList.contains(activity)) { oList.add(activity);//把当前Activity添加到集合中 } } /** * 销毁单个Activity */ public void removeActivity(Activity activity) { //判断当前集合中存在该Activity if (oList.contains(activity)) { oList.remove(activity);//从集合中移除 activity.finish();//销毁当前Activity } } /** * 销毁所有的Activity / public void removeALLActivity() { //通过循环把集合中的所有Activity销毁 for (Activity activity : oList) { activity.finish(); } } } 创建BaseActivity 继承 Activity 用于管理所有的Activity所有的Activity都继承这个类
public class BaseActivity extends Activity { private myApplication application; private BaseActivity oContext; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (application null) { // 得到Application对象 application (myApplication) getApplication(); } oContext this;// 把当前的上下文对象赋值给BaseActivity addActivity();// 调用添加方法 } // 添加Activity方法 public void addActivity() { application.addActivity(oContext);// 调用myApplication的添加Activity方法 } //销毁当个Activity方法 public void removeActivity() { application.removeActivity(oContext);// 调用myApplication的销毁单个Activity方法 } //销毁所有Activity方法 public void removeALLActivity() { application.removeALLActivity();// 调用myApplication的销毁所有Activity方法 } / 把Toast定义成一个方法 可以重复使用使用时只需要传入需要提示的内容即可*/ public void show_Toast(String text) { Toast.makeText(oContext, text, Toast.LENGTH_SHORT).show(); } } MainActivity 继承 BaseActivity 主界面—双击返回键退出当前应用程序 public class MainActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //绑定按钮 public void button(View v) { startActivity(new Intent(MainActivity.this, oneActivity.class));//跳转到oneActivity } //重写onKeyDown方法 public boolean onKeyDown(int keyCode, KeyEvent event) { //判断当点击的是返回键 if (keyCode event.KEYCODE_BACK) { exit();//退出方法 } return true; } private long time 0; //退出方法 private void exit() { //如果在两秒大于2秒 if (System.currentTimeMillis() - time 2000) { //获得当前的时间 time System.currentTimeMillis(); showToast(再点击一次退出应用程序); } else { //点击在两秒以内 removeALLActivity();//执行移除所以Activity方法 } } } oneActivity 继承 BaseActivity public class oneActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.onelayout); } // 绑定按钮 public void button(View v) { Intent intent new Intent(this, MainActivity.class);//跳转到主界面 startActivity(intent); } } androidmanifest.xml 清单文件
application android:namecom.jxsw.chong.application_closeactivity.myApplication //注册myapplication android:allowBackuptrue android:icondrawable/ic_launcher android:labelstring/app_name android:themestyle/AppTheme activity android:namecom.jxsw.chong.application_closeactivity.MainActivity android:labelstring/app_name intent-filter action android:nameandroid.intent.action.MAIN / category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity activity android:namecom.jxsw.chong.application_closeactivity.BaseActivity / activity android:namecom.jxsw.chong.application_closeactivity.oneActivity /
/application 我们让每个Activity都继承于我们自己定义的BaseActivity,每次新开启个Activity就会在BaseActivity的oncreate()方法中就会执行addActivity()方法方法里面执行的是myApplication类中添加Activity的方法把当前的Activity放进集合中当连续点击两次back返回键执行销毁所有Activity的方法。从而达到完全退出应用程序的效果。
ps:一定不要忘记在androidmanifest.xml中注册myApplication
—–以上代码都可以直接复制粘贴可用 第四种方式 使用广播退出 使用广播来实现退出应用程序其实实现的思路相对于第三种更简单我们编写一个BaseActivity让其他的Activity都继承于它当我需要退出时我们就销毁BaseActivity那么其他继承与它的Activity都会销毁。
我们来看下我写的一个使用广播来退出应用程序的Demo: BaseActivity
public class BaseActivity extends Activity { private MyBaseActiviy_Broad oBaseActiviy_Broad; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //动态注册广播 oBaseActiviy_Broad new MyBaseActiviy_Broad(); IntentFilter intentFilter new IntentFilter(drc.xxx.yyy.baseActivity); registerReceiver(oBaseActiviy_Broad, intentFilter); } //在销毁的方法里面注销广播 protected void onDestroy() { super.onDestroy(); unregisterReceiver(oBaseActiviy_Broad);//注销广播 } //定义一个广播 public class MyBaseActiviy_Broad extends BroadcastReceiver { public void onReceive(Context arg0, Intent intent) { //接收发送过来的广播内容 int closeAll intent.getIntExtra(closeAll, 0); if (closeAll 1) { finish();//销毁BaseActivity } } } /** * 显示Toast信息 */ public void showToast(String text) { Toast.makeText(this, text, 2000).show(); } }
MainActivity
public class MainActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //绑定按钮 public void button(View v) { Intent intent new Intent(this, oneActivity.class); startActivity(intent); } //重写onkeydown方法 public boolean onKeyDown(int keyCode, KeyEvent event) { //点击的为返回键 if (keyCode event.KEYCODE_BACK) { exit();// 退出方法 } return true; } private long time 0;
//退出方法 private void exit() { if (System.currentTimeMillis() - time 2000) { time System.currentTimeMillis(); showToast(再点击一次退出应用程序); } else { Intent intent new Intent(drc.xxx.yyy.baseActivity); intent.putExtra(closeAll, 1); sendBroadcast(intent);//发送广播 } } }
oneActivity
public class oneActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.onelayout); } // 绑定按钮 public void button(View v) { Intent intent new Intent(this, MainActivity.class);//跳转到MainActivity startActivity(intent); } } 我经常使用的方式就上面两种当然还有其他方式我没有去研究有其他更好的方式的我们可以互相交流。共同进步嘛 ——————————————————完——————————————————
- 上一篇: 网站流量指标请问的网站开发培训 有知道的吗
- 下一篇: 网站流量指标有哪些网站建设程序有哪些方面
相关文章
-
网站流量指标请问的网站开发培训 有知道的吗
网站流量指标请问的网站开发培训 有知道的吗
- 技术栈
- 2026年03月21日
-
网站流量站怎么做的公司电子版简介模板
网站流量站怎么做的公司电子版简介模板
- 技术栈
- 2026年03月21日
-
网站流量增长外贸网站建站那家公司好
网站流量增长外贸网站建站那家公司好
- 技术栈
- 2026年03月21日
-
网站流量指标有哪些网站建设程序有哪些方面
网站流量指标有哪些网站建设程序有哪些方面
- 技术栈
- 2026年03月21日
-
网站流量指标有哪些小程序做跳转微网站
网站流量指标有哪些小程序做跳转微网站
- 技术栈
- 2026年03月21日
-
网站流量指数哪个网站做体检预约的
网站流量指数哪个网站做体检预约的
- 技术栈
- 2026年03月21日
