Android初试--Activit的简单介绍(1)



1.创建Activity

   1.新建一个类,然后继承(android.app.Activity)Activity类。
   2.在这个类中重写必要的生命周期方法,onCreate()通常都需要重写,而且在重写之后的onCreate()中加载布局文件setContentView().
   3.在项目清单文件配置自己的Activity。
      <application>
             <activity
                      android:name="com.example.activity1.MainActivity"
                      android:label="@string/app_name" >
                 <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                 </intent-filter>
             </activity>
             <activity android:name="自己activity的名称(包名+类名)" ></activity>
      </application>
注意:如果新建的Activity没有在项目清单文件中配置会有如下异常
android.content.ActivityNotFoundException: Unable to find explicit activity class 

为布局文件中的按钮添加单击事件:
1.通过内部类的方式
package com.click369.activitydemo1;

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;


public class MainActivity extends Activity {
private  Button  button=null;
    //在本Activity第一次被执行的时候调用
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在activity中显示布局的
        setContentView(R.layout.activity_main);
        button=(Button)this.findViewById(R.id.open_test_activty_button);
        button.setOnClickListener(new MyClick());
    }
    
    public  class  MyClick implements OnClickListener{
@Override
public void onClick(View arg0) {
//创建意图对象
  Intent  intent=new Intent();
  //setClass(packageContext, cls)  参数1---本类的对象
  //                               参数2---目标类的对象                 
  intent.setClass(MainActivity.this, TestActivity.class);
  //发送意图
  startActivity(intent);
}
   
    }
}


2.通过匿名内部类的方式

package com.click369.activitydemo1;
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;


public class MainActivity extends Activity {
private  Button  button=null;
    //在本Activity第一次被执行的时候调用
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在activity中显示布局的
        setContentView(R.layout.activity_main);
        button=(Button)this.findViewById(R.id.open_test_activty_button);
        button.setOnClickListener(new  OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent();
intent.setClass(MainActivity.this, TestActivity.class);
startActivity(intent);
}
});
    }
}
3.通过在布局文件中位按钮设置单击事件

 <Button 
       android:id="@+id/open_test_activty_button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="打开TestActivity"
      * android:onClick="openActivity" *
       />


package com.click369.activitydemo1;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;


public class MainActivity extends Activity {
    //在本Activity第一次被执行的时候调用
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在activity中显示布局的
        setContentView(R.layout.activity_main);
    }
    /**
     * 按钮的单击事件
     * @param view
     */
    public  void  openActivity(View  view){
    Intent  intent = new Intent();
    intent.setClass(this, TestActivity.class);
    startActivity(intent);
    }
}


2.Activity的存储结构
 在一个Android应用程序中会出现多个Activity,所以你打开的Activiyt就要在内存中存储。
 Activity的存储结构是一种栈类型的存储结构。
 栈类型的存储结构的特点是先进后出。
  在Activity中是否使用了 finish(),如果出现表示当前的Activity被销毁了,所占内存被释放。
  点击返回按钮会调用当前Activity的finish()。
  那一个Activyt的对象在Activity的存储栈中的最顶端,那么手机屏幕上就是显示的是Activyt的对象。

3.Activity的生命周期

Activity的7个生命周期方法


protected void onCreate(Bundle icicle); 第一次创建的时候


protected void onStart(); 当Activity中的内容可见的时候 


protected void onRestart(); 停止状态的Activity重新可见的时候
 
protected void onResume();   当Activity中的内容获得焦点(可操作)的时候
 
protected void onPause();   非全屏的Activity覆盖原来的Activity的时候,导致原来的Activity处于暂停状态了。 
 
protected void onStop();    全屏的Activity覆盖原来的Activity的时候,先是执行onPause()然后onStop()被执行了,导致原来的Activity处于停止状态了
protected void onDestroy();  当Activity被销毁的时候

在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。


1.在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running) 


2.如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。当系统内存不足的时候,Stopped(停止状态)的Activity有可能将被杀掉。 


3.如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。当系统内存不足的时候,暂停状态(Paused)的Activity有可能将被杀掉。 


4.系统从内存中将Activity所占用的内存释放(删除),Activity死亡状态。


Activity开始---onCreate---onStart---onResume---运行状态  (第一次打开)


运行状态---onPause()---onStop()---停止状态  (按Home/新打开一个Activity全屏覆盖)


停止状态---onRestart()---onStart()---onResume()---运行状态(重新打开/结束新打开的全屏覆盖Activity)


运行状态---onPause()---onStop()---onDestroy()---死亡状态  (按Back键)


死亡状态---onCreate---onStart---onResume---运行状态  (从头在运行)


运行状态---onPause()---暂停状态 (新打开一个Activity非全屏覆盖/新打开一个透明的Activity)


暂停状态---onResume()---运行状态  (关闭非全屏覆盖Activity/透明的Activity/让暂停的Activity重新获得焦点)


横竖屏切换的时候是先将原来的Activity杀死,然后在从头执行一次。


将Activity设置成对话框
将下面的代码添加到项目清单文件中需要被设的Activity
android:theme="@android:style/Theme.Dialog"



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值