Android四大组件之活动Activity

AndroidManifest.xml:所有四大组件都需要在这里注册

一、活动的注册

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".当前活动类名"
            android:label="标题栏内容"
            android:icon="引用图片名(即设置应用图标)"
            android:launchMode="启动类型">
            <intent-filter>    //此标签可复制设置主活动
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

二、活动的启动类型

        standard(默认):每次启动活动都创建一个新的实例

        singleTop:当栈顶活动为该活动时不会创建新的示例

        singleTask(推荐):当栈里有该活动时,不会创建新的实例,将该活动之上的活动都出栈

        singleInstance:在有其它应用想使用是使用(即共享活动)

                                创建一个单独的栈来管理活动

        


三、活动类经常使用的方法

    super.onCreate(Bundle):创建活动时加载临时数据

    requestWindowFeature(Window.FEATURE_NO_TITLE):取消标题栏,必须在setContentView()前执行,不然报错

    setContentView(R.layout.布局名):给活动加载布局

    startActivity(Intent):通过Intent启动活动

    startActivityForResult(Intent,int):通过Intent启动活动,int为请求码(自己设定),被启动活动销毁后会返回数据给上一活动,

                                                        上一活动会自调用onActivityResult()方法 会自动调用onActivityResult()方法

    setResult(Result,Intent):Result为Result_OK或Result_CANCELED用来向上一活动返回处理结果,Intent用来装返回数据

    getIntent():获取启动当前活动的Intent

    findViewById(R.id.id名):获取在布局文件中的元素,如:控件

四、活动类可重写的方法

    活动的状态函数:onXXX(),如:onCreate(),重写时必须在第一行调用super.onXXX(),如:super.onCreate(Bundle);

    onActivityResult(int requestCode,int result,Intent data): requestCode为请求吗,result为Result为Result_OK或

                                                                                              Result_CANCELED,data为被启动活动返回数据

    onSaveInstanceState(Bundle):保存临时数据,必须调用super.onSaveInstanceState(Bundle),方法在活动在回收之前调用,

                                                    将数据保存至Bundle里,该Bundle即onCreate(Bundle)里的Bundle

    onBackPressed():当手机按下Back键触发的方法,可用来解决Back键的活动之间返回数据不成功等问题

五、数据传输保存类和消息提示类(Intent,Bundle,Toast)

保存数据有俩个类:Intent和Bundle,消息提示类:Toast

Intent:被用于不同组件传输数据,可用来启动活动,启动服务,发送广播等

有以下方法:

    Intent(启动活动.this,被启动活动.class):配合startActivity(Intent)或startActivityForResult(Intent,int)作为显示启动方法

    Intent(String):Strin为被启动活动的XML文件里的<intent-filter>里的<action>里的android:name属性值

    addCategory(String):String为除默认Category外的category,方法给Intent指定<category>里的的android:name属性值

                注意:1、当活动与Intent里的<action>里的android:name和<category>里的android:name都一致时为隐式启动

                                活动方法

                          2、一个Intent可以指定一个action,多个category

                          3、android.intent.category.DEFAULT是默认category,Intent无需指定

    putExtra(String Key,String Value):用键值对方式往Intent里放入数据

    getXxxExtra(String Key):通过Key取出数据Value(Xxx可为String等数据类型)


Bundle:长用来保存临时数据,super.onCreate(Bundle)和onSaveInstance(Bundle)配合使用

    有以下方法:

    putXxx(String Key,String Value):以键值对方式往Bundle放入数据(Xxx可为String等数据类型)

    getXxx(String Key):通过Key得到Value(Xxx可为String等数据类型


Toast:在屏幕底部弹出小黑框消息

格式:Toast.makeText(显示活动.this,String content,Toast.LENGTH):Toast.LENGTH 可为Toast.LENGTH.LONG

                                                                                                        或Toast.LENGTH.SHORT用来设置显示时间长短

                                                                                                        content为显示内容

六、活动的小技巧

   小技巧One: 知晓当前活动的类名

    1、写一个基类BaseActivity

    2、让所有类继承于BaseActivity

    3、在BaseActivity的onCreate(Bundle)方法上写入Log.d("BaseActivity",getClass().getSimpleName());

   小技巧Two(重点):随时能退出程序

    1、创建活动管理类ActivityCollector

    2、写一个基类BaseActivity,当活动onCreate()时添加至ActivityCollector里,onDestroy()时删除该活动

    3、让所有类继承于BaseActivity

猜你喜欢

转载自blog.csdn.net/qq_38487155/article/details/81004729