Android学习笔记——Actvity启动模式

Activity的四种启动模式

1.standard,被启动的Activity会运行在启动它的Activity所在的栈中,每次启动都会新建一个Activity实例。

2.singleTop,如果新的Activity已经有位于栈顶的实例,那么它不会新建实例,但是会调用它的onNewIntent方法。如果栈中有Activity的实例但是不是位于栈顶,还是会新建一个实例。

3.singleTask,首先系统会寻找是否存在A想要的任务栈,不存在就创建一个新的任务栈,如果存在就看栈中是否有改活动的实例存在,存在就将其调到栈顶,否则就新建一个实例。将其调到栈顶会弹出其上的所有活动。

4.singleInstance ,具有singleTask的所有特点,另外一点,此模式的Activity只能单独位于一个任务栈。

Activity的任务栈

参数TaskAffinity标识了一个Activity所需要的任务栈的名字,默认情况下为应用的包名。
Activity的allowTaskReparenting属性为true的话,允许Activity在不是TaskAffinity指定的任务栈中,但当TaskAffinity指定的任务栈存在时,需要转移回自己的任务栈。如应用A启动了应用B的ActivityC,当按home键回到桌面启动应用B后,C就会回到B的任务栈中。
当TaskAffinity和singleTask模式配对使用的时候,待启动的Activity会运行在名字和TaskAffinity相同的任务栈中。

指定启动模式

1.通过AndroidMenifest为Activity指定启动模式,
< acitivity
android: lanchMode="">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.example.cuiyong_04; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class SignUp extends Activity { // 调用Actvity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sign_up);//关联activity_register.xml // 关联用户名、密码、确认密码、邮箱和注册、返回登录按钮 EditText userName = (EditText) this.findViewById(R.id.UserNameEdit); EditText passWord = (EditText) this.findViewById(R.id.PassWordEdit); EditText passWordAgain = (EditText) this.findViewById(R.id.PassWordAgainEdit); EditText email = (EditText) this.findViewById(R.id.EmailEdit); Button signUpButton = (Button) this.findViewById(R.id.SignUpButton); Button backLoginButton = (Button) this.findViewById(R.id.BackLoginButton); // 注册按钮监听器 signUpButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { String strUserName = userName.getText().toString().trim(); String strPassWord = passWord.getText().toString().trim(); String strPassWordAgain = passWordAgain.getText().toString().trim(); String strPhoneNumber = email.getText().toString().trim(); //注册格式粗检 if (strUserName.length() > 10) { Toast.makeText(SignUp.this, "用户名长度必须小于10!", Toast.LENGTH_SHORT).show(); } else if (strUserName.length() < 4) { Toast.makeText(SignUp.this, "用户名长度必须大于4!", Toast.LENGTH_SHORT).show(); } else if (strPassWord.length() > 16) { Toast.makeText(SignUp.this, "密码长度必须小于16!", Toast.LENGTH_SHORT).show(); } else if (strPassWord.length() < 6) { Toast.makeText(SignUp.this, "密码长度必须大于6!", Toast.LENGTH_SHORT).show(); } else if (!strPassWord.equals(strPassWordAgain)) { Toast.makeText(SignUp.this, "两次密码输入不一致!", Toast.LENGTH_SHORT).show(); } else if (!strPhoneNumber.contains("@")) { Toast.makeText(SignUp.this, "邮箱格式不正确!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(SignUp.this, "注册成功!", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(SignUp.this, MainActivity.class); startActivity(intent); } } } ); // 注册按钮监听器 backLoginButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SignUp.this, MainActivity.class); startActivity(intent); } } ); } } 添加一个sharedprefence存储输入的东西,并添加接口
最新发布
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值