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();

0 0
原创粉丝点击