Activity
来源:互联网 发布:防御矩阵中文破解版 编辑:程序博客网 时间:2024/06/09 13:56
Activity生命周期
分析:
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
启动Activity
1、直接启动activity
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondApplication.class); startActivity(intent);//直接启动activity
2、带有返回值的启动方式
第一个界面调用startActivityForResult方法
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondApplication.class); startActivityForResult(intent, 0x99); } });
第二个界面调用getIntent得到启动的Intent;关闭前封装数据;设置ReSultCode, setResult(RESULT_OK,intent);关闭第二个界面。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); final EditText text = (EditText)findViewById(R.id.edit); Button button =(Button) findViewById(R.id.button_send); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = getIntent(); intent.putExtra("databack",text.getText().toString());//封装数据 setResult(RESULT_OK,intent);//设置resultcode finish();//关闭第二个界面 } }); }
第一个界面准备接收数据,重写onActivityResult方法;判断resultcode,从data中读取数据
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 0x99: if (resultCode == RESULT_OK) { String value = data.getStringExtra("databack"); textView.setText(value); } break; default: break; }
activity应用
1、新建class SecondApplication继承Activity;
2、重写onCreate方法,setContenView;
public class SecondApplication extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); final EditText text = (EditText)findViewById(R.id.edit); Button button =(Button) findViewById(R.id.button_send); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = getIntent(); intent.putExtra("databack",text.getText().toString()); setResult(RESULT_OK,intent); finish(); } }); }}
3、在res文件夹下的layout文件夹下新建一个layout resource file,在其中设置按钮和EditText;
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" ><EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容" android:id="@+id/edit"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="发送" android:id="@+id/button_send"/></LinearLayout>
4、在AndroidMainfest.xml文件上注册 ;
5、在MainActivity的layout上添加按钮;
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="进入第二个界面" android:id="@+id/button_back" />
6、在MainActivity代码的onCreate方法中 Button button = (Button) findViewById(R.id.button_back);
7、给button设置点击事件 button.setOnClickListener(new View.OnClickListener();
Button button = (Button) findViewById(R.id.button_back); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondApplication.class); startActivity(intent);//直接启动activity } });
8、新建Intent Intent intent = new Intent(MainActivity.this, SecondApplication.class);
9、调用startActivity();
- Activity
- Activity
- Activity。。。
- Activity
- Activity
- Activity
- Activity
- Activity
- Activity
- Activity
- activity
- Activity
- Activity
- activity
- Activity
- activity
- activity
- activity
- [BLE--Link Layer]物理信道
- Touch事件分发
- Android 中对于图片的内存优化方法
- HDU 5304(Eastest Magical Day Seep Group's Summer-环加外向树生成树计数)[Template:Kirchhoff矩阵]
- iOS - 中三种定时器的用法NSTimer、CADisplayLink、GCD
- Activity
- 2015/8/19/横、竖、满屏/消除标题、标题栏/startActivityForResult(启动带有返回值的intent)/Intent
- Python学习笔记二:Python中的列表
- UVA 489-Hangman Judge
- 欢迎访问我在博客园的博客
- UI16_数据持久化(NSUserDefaults,简单对象,复杂对象归档反归档,文件管理者"删除添加文件")
- 题目:矩阵的之字型遍历
- 多线程并发问题(二)
- HDU 1203 I NEED A OFFER!