当前位置: 首页 > news >正文

专业国外网站建设现在的网站开发用什么技术

专业国外网站建设,现在的网站开发用什么技术,统计局网站集约化建设方案,网站搭建与网站建设文章目录Activity 的启动模式standardsingleTopsingleTasksingleInstance技巧了解当前界面是哪个 Activity随时随地退出程序启动活动的最佳写法Activity 的启动模式 standard#xff1a;默认的启动方式#xff0c;每次启动一个活动都会重新创建singleTop#xff1a;如果该活… 文章目录Activity 的启动模式standardsingleTopsingleTasksingleInstance技巧了解当前界面是哪个 Activity随时随地退出程序启动活动的最佳写法Activity 的启动模式 standard默认的启动方式每次启动一个活动都会重新创建singleTop如果该活动处于栈顶则不会创建新活动不处于栈顶则创建新活动singleTask如果返回栈中存在该活动那么将该活动之上的所有活动统统出栈将该活动置于栈顶如果不存在该活动则创建singleInstance会重新启用一个新的返回栈来创建该活动通常用于共享活动的实例 standard standard 是 Activity 默认的启动模式在不进行显式指定的情况下都使用这种模式。 在本模式下每当启动一个新的活动系统不会确认返回栈中是否已存在这个活动而是直接创建该活动的一个新的实例并入栈。 singleTop 如果启动活动时发现返回栈栈顶已经是这个活动则认为可以直接使用它不会创建新的实例。 在 AndroidManifest.xml 中添加如下配置 singleTask 每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例 如果发现已经存在则直接使用该实例并把在这个活动之上的活动统统出栈如果没有就创建新的实例。 举个例子 我们为 FirstActivity 配置 singleTask 然后在 FirstActivity 的 Button 上启动 SecondActivity然后 SecondActivity 的 Button 上回到 FirstActivity。 我们可以得到这样的推断 在 SecondActivity 中启动 FirstActivity 时会发现返回栈中已经存在一个 FirstActivity 的实例于是 SecondActivity 会从返回栈中出栈而 FirstActivity 重新成为了栈顶活动因此 FirstActivity 的 onRestart()方法 和 SecondActivity 的 onDestroy() 方法会得到执行。 singleInstance 在本模式下活动会启用一个新的返回栈来管理如果 singleTask 模式指定了不同的 taskAffinity也会启动一个新的返回栈。如果我们想实现其他程序和我们的程序可以共享某个活动的实例就可以用 singleInstance 模式创建一个单独的返回栈来管理这个活动以此实现让任意应用程序都可以调用该活动。 举个例子 FirstActivity 通过 Button 跳转到 SecondActivitySecondActivity 通过 Button 跳转到 ThirdActivity且修改 SecondActivity 的启动模式为 singleInstance activity android:name.SecondActivity android:launchModesingleInstance倘若我们通过 log 来监测三个活动分属的返回栈我们会发现 SecondActivity 是存放在一个单独的返回栈里的。 而在 ThirdActivity 中按 Back 键那么会直接返回到 FirstActivity再按下返回键会回到 SecondActivity再按下返回键才会退出程序。 原理很简单 由于 FirstActivity 和 ThirdActivity 是存放在同一个返回栈里的当在 ThirdActivity 的界面按下 Back 键 ThirdActivity 会从返回栈中出栈那么 FirstActivity 就成为了栈顶活动显示在界面上。然后在 FirstActivity 界面再次按下 Back 键这时当前的返回栈已经空了于是就显示了另一个返回栈的栈顶活动即 SecondActivity。最后再次按下 Back 键这时所有返回栈都已经空了也就自然退出了程序。 技巧 了解当前界面是哪个 Activity 新建一个普通 java 类 —— BaseActivity public class BaseActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Log.d(BaseActivity, getClass().getSimpleName());} }然后让每个活动类都改为继承自 BaseActivity这样就可以在 LogCat 中看到当前类名。 随时随地退出程序 当在程序运行中的一个活动要退出可能会需要按多次 Back 键按 Home 键只是把程序挂起并没有退出程序。所以需要一个直接退出活动的方法。 新建一个 ActivityCollector 类作为活动管理器 public class ActivityCollector {public static ListActivity activities new ArrayListActivity();public static void addActivity(Activity activity){ // 用于向 List 中添加一个 Activityactivities.add(activity);}public static void removeActivity(Activity activity){ // 用于从 List 中删除一个 Activityactivities.remove(activity);}public static void finishAll(){ // 用于将 List 中存储的所有活动全部销毁for (Activity activity : activities)if (!activity.isFinishing())activity.finish();} }接下来修改 BaseActivity public class BaseActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Log.d(BaseActivity, getClass().getSimpleName());ActivityCollector.addActivity(this);// 将当前正在创建的活动添加到活动管理器 ActivityCollector 里}Overrideprotected void onDestroy(){super.onDestroy();ActivityCollector.removeActivity(this);// 将一个马上要销毁的活动从管理器 ActivityCollector 中移除} }以后不管想在什么地方退出程序只需要 ActivityCollector.finishAll() 就可以了。 保险起见也可以在销毁所有活动后杀掉当前进程以保证程序完全退出 android.os.Process.killProcess(android.os.Process.myPid());killProcess() 方法用于杀掉一个进程它接收一个进程 id 参数通过 myPid() 方法来获得当前程序的进程 id。需要注意的是 killProcess() 方法只能用于杀掉当前程序的进程我们不能使用这个方法去杀掉其他程序。 启动活动的最佳写法 之前启动的方法是构建一个新的 Intent然后调用 startActivity() 或者 startActivityForResult() 来启动活动。如果 SecondActivity 需要用到两个字符串参数那么 FirstActivity 可能会写成下面这样 Intent intent new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra(extra_data1, s1); intent.putExtra(extra_data2, s2); startActivity(intent);这样虽然可以但是在 SecondActivity 是一个黑盒子时是会出现问题的。可以修改 SecondActivity 的代码 public static void actionStart(Context context, String s1, String s2){Intent intent new Intent(context, SecondActivity.class);intent.putExtra(extra_data1, s1);intent.putExtra(extra_data2, s2);context.startActivity(intent); }和以往不同在 actionStart() 方法中完成了 Intent 的构建而非 onClick() 方法所有 SecondActivity 中需要的数据都是通过 actionStart() 方法的参数传递过来的然后把它们存储到 Intent 中最后调用 startActivity() 方法启动。 这样在 onClick() 方法中只需一行代码即可启动 SecondActivity button1.setOnclickListener(new OnclickListener() {Overridepublic void onclick(View v) {SecondActivity.actionStart(FirstActivity.this, data1, data2);} });
http://www.zqtcl.cn/news/142502/

相关文章:

  • 空白网站怎么建立网站默认主页设置
  • wordpress外网访问不seo综合查询是什么
  • 曲阜网站建设价格做5173这样的网站要多少人
  • 深圳网站建设服务合同wordpress 增删改查
  • 网站建设好处wordpress评论积分
  • 珠海网站策划网站不能自行备案吗
  • 在vs中做网站如何连接数据库wordpress模板如何安装教程
  • 10g空间网站做视频网站手机网站搜索
  • 服务器上面建设网站网站为什么显示正在建设中
  • 德阳网站优化网络顾问
  • 大淘客可以做几个网站hm网上商城
  • 网站建设分配人员方案呼市网站制作招聘
  • 电商网站建设方案100例用什么做php网站
  • 网站开发设计课程教案南宁网站建设招聘
  • 常州微信网站建设wordpress 中英主题
  • 新零售型网站开发网络营销常用的工具和方法
  • 陕西省建设监理协会网站证书网站建设去哪里找客户
  • 上海网站注销吗如何在wordpress上调用百度地图
  • 网站设计与开发实例网站semseo先做哪个
  • 一个网站做3个关键词够找人建设一个网站多少钱
  • 网站群软件阿里云虚拟主机wordpress
  • 自己做个网站要多少钱温州网站开发平台
  • 北京鑫创网站建设找个网站你知道的
  • 做网站找客户电子商务网站开发与管理
  • 宝安高端网站设计怎么样qq钓鱼网站怎么制作
  • 学习教建网站公众号小程序怎么注销
  • 网站建设或网站优化排名做建筑设计网站
  • 外贸seo外贸推广外贸网站建设外贸网站建设用图片设置网站首页
  • 网站模板安装出入成都通知今天
  • wordpress网站 添加微信网站设计O2O平台佛山总代理