Android入门笔记之Activity

本文详细介绍了Android中Activity的生命周期,包括七个关键方法的作用与调用时机。并通过示例代码展示了如何在不同阶段进行数据交互与状态保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android入门笔记之Activity

<1>简介

1、onCreate()     
Acitivity首次创建时被调用。用于设置Acitivity的布局文件,绑定按钮监听器等一些普通静态操作。 

2、onStart() 
Acitivity对用户可见时被调用。 

3、onResume() 
Acitivity获得用户焦点,即用户可操作该Acitivity时被调用。 

4、onPause() 
应用程序启动了其它Acitivity时被调用。一般用于保存当前Acitivity中的数据。 

5、onStop() 
Acitivity不可见时被调用。 

6、onRestart() 
已停止的Acitivity重新启动时被调用。 

7、onDestroy() 
调用Acitivity的finish()方法或Android系统资源不足时被调用。

 

<2>关键步骤

       在firstActivity中通过对上述7个函数的重载实现,并用toast观察很容易看出调用顺序。


       firstActivity中有id为buttonRe的button,点击后将访问secondActivity,通过startActivityForResult调用,进入注册页面,填完信息后点secondActivity中的button后将所填数据通过Bundle返回至firstActivity中,并在onActvityResult函数中处理。

<3>出现的问题

       不要忘记将新的Activity在android manifest.xml中注册一下。

<4>代码及解释

       点击注册按钮后进入secondActivity,如下图:

 

点Button返回firstActivity:


firstActivity:

package com.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.test.R;

public class firstActivity extends Activity{
	/**   
	 * @ProjectName:  [androidtest] 
	 * @Package:      [com.activity.firstActivity.java]  
	 * @ClassName:    [firstActivity]   
	 * @Description:    
	 * @Author:       [gmj]   
	 * @CreateDate:   [2013-9-1 下午4:02:28]   
	 * @Version:      [v1.0] 
	 */
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_first);
		Button bt = (Button)this.findViewById(R.id.buttonRe);
		Toast.makeText(firstActivity.this, "on create", Toast.LENGTH_LONG).show();
		bt.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent in = new Intent(firstActivity.this , secondActivity.class);
				startActivityForResult(in , 0);				
			}
		});
	}
	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Toast.makeText(firstActivity.this, "on destroy", Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		Toast.makeText(firstActivity.this, "on pause", Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		Toast.makeText(firstActivity.this, "on restart", Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Toast.makeText(firstActivity.this, "on resume", Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Toast.makeText(firstActivity.this, "on stop", Toast.LENGTH_LONG).show();
	}
	
	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStop();
		Toast.makeText(firstActivity.this, "on start", Toast.LENGTH_LONG).show();
	}

	public void onActivityResult(int requestCode , int resultCode , Intent intent)
	{
		if(requestCode == 0 && resultCode == 0)
		{
			Bundle data = intent.getExtras();
			String result = "用户名" + data.getString("username") + "密码" + data.getString("password");
			TextView tv = (TextView)this.findViewById(R.id.showView);
			tv.setText(result);			
		}
	}
}


SecondActivity:

package com.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

import com.test.R;

public class secondActivity extends Activity{
	/**   
	 * @ProjectName:  [androidtest] 
	 * @Package:      [com.activity.secondActivity.java]  
	 * @ClassName:    [secondActivity]   
	 * @Description:    
	 * @Author:       [gmj]   
	 * @CreateDate:   [2013-9-1 下午4:03:01]   
	 * @Version:      [v1.0] 
	 */
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		Button bt = (Button)this.findViewById(R.id.buttonSumbit);
		bt.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				EditText tx1 = (EditText)findViewById(R.id.editUser);
				EditText tx2 = (EditText)findViewById(R.id.editPass);
				Intent intent = getIntent();
				Bundle bd = new Bundle();
				bd.putString("password", tx2.getText().toString());
				bd.putString("username", tx1.getText().toString());
				intent.putExtras(bd);
				secondActivity.this.setResult(0 , intent);
				secondActivity.this.finish();
				
			}
		});
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值