android 复习之路之Activity

过几天后要考核面试了,所以自己想写下自己的android复习过程,方便以后再有考核面试时,看看博客就OK了!

首先,先从Activity开始:
先写个目录:
Activity
(1)生命周期
(2)启动模式
(3)Intent(显式,隐式意图)
(4)Activity之间的数据传递

一,生命周期
用一张图,就能描述清楚了。

图片是自己做的!哦也!
还有增加一个内容:
Activity失去焦点时,首先必然会执行onPause()方法,因此项目中需要保存数据时,可以在onPause()方法中保存。(抄书本的)
注意:手机在横竖屏时,Activity会销毁重建,所以如果不希望在横竖屏切换时,Activity销毁重建,可以在清单文件AndroidMainifest文件中配置这个:
<activity android:name=".Activity02"
            android:configChanges="orientation|keyboardHidden|screenSize" />
如果想要写死横竖屏的话,就这样添加代码:

<activity android:name=".Activity02" android:screenOrientation="portrait" />  <!-- 表示竖屏 -->
<activity android:name=".Activity02" android:screenOrientation="landscape" />  <!-- 表示横屏 -->

二,启动模式
什么事启动模式呢? 我书本上第58页有,所以我只要看一下书本就行了!大笑 (看到这里的网友别打我微笑,我是特别懒惰的)

但树我要说下:Activity有4种启动模式:
standard,singleTop,singleTask,singleInstance。

三,Intent(显式,隐式意图)
额。。。显示意图我是不说了,It is so easy ! 隐式意图的话,我说一下:就是隐式意图!微笑

如果我想打开照相功能的Activity,但树我不知道它的Activity叫什么,怎么办?
很简单! 我们知道它的一些Activity的配置就行了,比如说以下的这个Activity
<activity android:name=".Activity02" >
            <intent-filter>
                <action android:name="org.com.abc" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
</activity>
我想打开这个Activity,就可以用下面代码:
Intent intent = new Intent();
intent.setAction("org.com.abc");
startActivity(intent);
然后就可以打开了!谢谢!

四,Activity之间的数据传递
Activity之间的数据传递是用Intent来进行的。
String data = "hello";
Intent intent = new Intent(MainActivity.this,Activity02.class);
intent.putExtra("hello",data);
startActivity(intent);
Activity02中接受到数据
Intent intent = getIntent();
String datas = intent.getStringExtra("hello");
还有另外一种传递数据的Way
		Bundle bundle = new Bundle();
                bundle.putString("name","小白");
                bundle.putInt("age",10);
                Intent intent = new Intent(Activity02.this,MainActivity.class);
                intent.putExtras(bundle);
                startActivity(intent);
然后在 MainActivity中取出数据,就看以下代码:
		Intent intent = getIntent();
                Bundle bundle = intent.getExtras();
                String name = bundle.getString("name");
                int age = bundle.getInt("name");

OK!最后在这里有个重点的东西,就是回传数据
ActivityA——>ActivityB,然后ActivityB——>回传给ActivityA
就是从ActivityB中拿一些数据回给ActivityA
代码如下:
在MainActivity中
Intent intent = new Intent(MainActivity.this,Activity02.class);
startActivityForResult(intent,1);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1){
        String num = data.getStringExtra("1");
        show.setText(num+"");
    }
}

然后在Activity02中
Intent intent = new Intent();
intent.putExtra("1","1");
setResult(1,intent);
finish();

最后再补一句:
Activity是Android四大组件之一,负责管理Android应用程序的用户界面

然后再补几个方法
 
 
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    Toast.makeText(MainActivity.this,"按键被按下!",Toast.LENGTH_SHORT).show();
    return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    Toast.makeText(MainActivity.this,"按键被弹起!",Toast.LENGTH_SHORT).show();
    return super.onKeyUp(keyCode, event);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    float x = event.getX();
    float y = event.getY();
    Toast.makeText(MainActivity.this,"获取坐标X,Y",Toast.LENGTH_SHORT).show();
    return super.onTouchEvent(event);
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值