星空网 > 软件开发 > 操作系统

Activity的启动模式之Standard

  standard是活动默认的启动模式,在不进行启动模式的设置的情况下,所有活动都会自动使用这种启动模式。在该模式下,每当启动一个Activity就会在返回栈中入栈,将前面启动的Activity压入到栈内,本身处于栈顶的位置。对于使用standard模式的活动,android系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。

  弄段代码对该模式进行深入的体会,我们在布局中加入一个按钮Button,通过该按钮来启动同一个活动,然后观察进栈退栈的情况。创建一个项目LearnLaunchMode;在activity_main.

 1 <??> 2 <LinearLayout ="http://schemas.android.com/apk/res/android" 3   ="http://schemas.android.com/tools" 4   android:layout_width="match_parent" 5   android:layout_height="match_parent" 6   tools:context="com.rocking.learnlaunchmode.MainActivity"> 7   <Button 8     android:id="@+id/launch" 9     android:layout_width="match_parent"10     android:layout_height="wrap_content"11     android:text="再次启动一个MainActivity" />12 </LinearLayout>

  然后在MainActivity.java文件中执行启动Activity的操作,代码如下:

 1 public class MainActivity extends ActionBarActivity { 2   private Button launch; //声明一个Button组件 3   @Override 4   protected void onCreate(Bundle savedInstanceState) { 5     super.onCreate(savedInstanceState); 6     requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏标题栏;必须放在setContent()前面 7     setContentView(R.layout.activity_main); 8     Log.i("tag", this + " is launch"); 9     launch = (Button) findViewById(R.id.launch);  //获取布局文件中的Button组件10     //以匿名类的形式添加Button的事件**11     launch.setOnClickListener(new View.OnClickListener() {12       @Override13       public void onClick(View v) {14         Intent intent = new Intent();  //创建一个意图15         //"显示"意图,第一个参数是一个Context,即当前的Activity,第二个参数是我们要打开的Activity16         intent.setClass(MainActivity.this, MainActivity.class);17         startActivity(intent); //启动该意图18       }19     });20 21   }22 }

  运行该程序,此时已经有一个MainActivity,然后再点击两次Button,继续创建两个MainActivity的实例,在LogCat中可以看到打印信息如下,也就是说有三个MainActivity进入了返回栈。

Activity的启动模式之Standardimages/loading.gif' data-original="http://images2015.cnblogs.com/blog/993533/201608/993533-20160822183545651-931098410.png" />

  此时如果我们需要退出程序,则需要点击三次back键,将这些活动出栈。因此,可以画出Standard模式的原理示意图如下:

Activity的启动模式之Standard

 




原标题:Activity的启动模式之Standard

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

警惕!洗手液未达标准,有关listings统统被下架:https://www.ikjzd.com/articles/136132
传沃尔玛将聘高盛为Flipkart筹划IPO事宜:https://www.ikjzd.com/articles/136133
河北石家庄21条举措支持跨境电商发展:https://www.ikjzd.com/articles/136134
亚马逊将投资7亿美元再培训10万名美国工人:https://www.ikjzd.com/articles/136135
沃尔玛将于12月24日向小时工支付第四次特别奖金:https://www.ikjzd.com/articles/136136
阿里国际站首届12.12跨境贸易出货节将开启:https://www.ikjzd.com/articles/136137
300万箱!ONE将投入250亿美元,用于扩大运力:https://www.kjdsnews.com/a/1836472.html
航运系统阻断,美港口无限期关闭!:https://www.kjdsnews.com/a/1836473.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流