Android四大组件分别为:1.活动Activity,2.服务Service,3.广播Broadcast Receiver,4.内容提供器Content Provider

此文章后面不完整,有时间还会补全,简书id同名,文章同步。

Activity基础

1.定义:Activity是一个包含视图界面的应用程序组件,负责与用户交互。
这是选择empty activity后新建一个项目,android studio自动生成的项目:
Android基础-四大组件之activity(基础)-LMLPHP
2.可以通过setContentView()来为活动加载xml布局文件

setContentView(R.layout.activity_main);

3.任何活动都应重写的方法是onCreate()方法。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

4.需使用活动就需在AndroidManifest文件中注册(右键new一个activity通常Android studio会自动注册)。

 <application
       ...
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

5.一个app首先启动哪一个activity由在AndroidManifest文件中标签决定。activity标签下添加

 <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

6.Activity之间通过Intent进行通信。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给被调用的组件,并完成组件的调用。——百度百科

Intent大致分为显示Intent和隐式Intent
显示Intent使用:
1.在MainActivity中启动活动NextActivity

Intent intent = new Intent(MainActivity.this,NextActivity.class)
startActivity(intent);

2.在MainActivity中启动活动NextActivity 并传数据
使用 putExtra() 方法,以键值对形式传入两参数,例子如下

//MainActivity中传递
int num=1;
Intent intent = new Intent(MainActivity.this,NextActivity.class)
intent.putExtra("numberData",num)
startActivity(intent);

//NextActivity中获取
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_next);
        //获取MainActivity传来的数据
        Intent intent = getIntent();
        Int num=intent.getIntExtra("numberData");
    }
3.返回数据给上一个活动
startActivityForResult();的使用

07-11 18:49