Activity

Activity形态:
Running:与用户交互的可见界面
Paused:Activity失去焦点,失去交互能力,所有的数据依然保存着
Stopped:当前Activity被另一个Activity完全覆盖,不可见,数据依然保存着
Killed:Activity被系统回收。

public class MyClass extends Activity {

    // 在Activity生命周期开始时调用。创建基本的UI元素
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState != null) {
            String temp = savedInstanceState.getString("key");
            Log.d("TAG", temp);
        }
    }

    // 在onCreate完成后调用,用来恢复UI状态
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
    }

    // 当activity从停止状态重新启动时调用
    @Override
    protected void onRestart() {
    }

    // 对用户可见时调用
    @Override
    protected void onStart() {
    }

    // 与用户交互时调用,此时activity在activity栈(读zhan)顶。
    @Override
    protected void onResume() {
    }

    // activity即将移出栈顶时保留UI状态时调用
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        String temp = "临时保存的数据";
        outState.putString("key", temp);// 在onCreate中恢复
    }

    // 当系统启动另外一个activity时调用,用来提交那些持久数据的改变、停止动画、和其他占用CPU资源的东西。代码执行要快。
    @Override
    protected void onPause() {
    }

    // 对用户不再可见时调用。一个新activity启动、其他activity被切换至前景、当前activity被销毁。
    @Override
    protected void onStop() {
    }

    // 当activity被销毁前所调用的最后一个方法。进程终止时会发生。
    @Override
    protected void onDestroy() {
    }

Activity间传递数据:
1.调用者需要override onActivityResult()方法;
2.调用时使用statActivityForResult();
3.被调用者在finish()之前调用setResult()方法返回数据。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case MY_REQUEST_CODE:
            if (resultCode == RESULT_OK) {
                Bundle bundle = data.getExtras();
                if (bundle != null) {
                    String str = bundle.getString("msg");
                    Log.d("TAG", str);
                }else {
                    Log.d("TAG", "bundle == null");
                }
            }
            break;

        default:
            break;
        }
    }

复写onActivityResult()方法。
requestCode用以标识哪次请求;
result用以标识被调用者返回的code;
data为所要传递的数据,使用getExtras()把它取出来。

Intent intent = new Intent();
    intent.setClass(FromActivity.this, ToActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("msg",msg);
    intent.putExtras(bundle);

活动的启动模式:
1.standard——默认的启动模式,每次启动活动都会创建一个新的实例;
2.singleTop——启动活动时如果该活动已经处在返回栈的栈顶,则直接使用,不再创建新的活动实例;
3.singleTask——某个活动在整个应用程序的上下文中只存在一个实例;FLAG_ACTIVITY_CLEAR_TOP
4.singleInstance——所有的应用程序都共享活动实例。
Intent Flag启动模式:
Intent.FLAG_ACTIVITY_NEW_TASK:使用一个新的Task启动Activity,启动的每个Activity都将在一个新的Task中;
FLAG_ACTIVITY_SINGLE_TOP:使用singletop模式来启动一个Activity;
FLAG_ACTIVITY_CLEAR_TOP:使用singletask模式来启动一个Activity;
FLAG_ACTIVITY_NO_HISTORY:当该Activity启动其他Activity后,该Activity就消失。
全屏和隐藏标题栏的方法,在Activity.setContentView()之前调用,否则无效。

// 全屏
public void setFullscreen(){
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    // 隐藏标题栏
    public void setNoTitle(){
        requestWindowFeature(Window.FEATURE_NO_TITLE);
    }

软件的安装和卸载

// 安装
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse("file://"+filePath), "application/vnd.android.package-archive");
        // 或者Uri.fromFile(new File(fileName)),"appli..."

        // 卸载
Uri packageUri = Uri.parse("package:com.android.myapp");
        Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageUri);
        startActivity(uninstallIntent);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值