Intent重点小结

1.Intent 设置级别的时候  不论设置多大  打开Activity 都会在一个级别上  

  但是当设置的数字 是一个负数的时候  优先级就会比 别的Activity低  

2.Intent 设置了setData的时候 就不能在设置setType不然之前设置的值 就变成null了 反之也是如此。  除非使用setDataAndType()这个方法

3.Activity四种加载模式

standard:默认方式----当startActivity的时候 每次都会在栈里面创建的一个新的Activity  加入的栈顶

《打开A》《打开B》 点击五下打开A  就会创建5个A的Activity。

singleTop:---当运行startAcivity的时候 他会先判断   ,判断当前栈顶是不是和要创建的Activity的名字一致,如果一样 那么他就不在创建,如果名字不一样,也会重新创建一个。

《打开A》《打开B》 点击五下打开A, 就只会调用刚开始创建的那个A,因为当前栈顶是A,如果交叉点击《一个A,一个B》那么他也会像默认加载一样,一直创建出新的Activity

singleTask:在当前栈中,先判断是否存在Activity,如果不存在,创建一个新的Activity入栈,如果存在,会把这个Activity所在的栈上面的所有Activity给清除出去,然后显示这个Activity。

《打开A》《打开B》A,A,B,A, 在点击B的时候 ,就不会在创建B了 而是把 B上面这个A给清除出去, 从而显示B。

singleInstance:类似单例设计模式,会新创建一个栈,把新创建的Activity实例放入栈中,每个栈只能有一个Activity,如果又来一个不一样的Activity,就会在创建一个栈。

《打开A》《打开B》《打开C》点击AB会创建2个栈 分别存放A和B而且只能存放一个,在点击C会在创建一个新的栈把C的Activity放入进来。   类似浏览器网页来回切换状态。

4.flag:

NEW_TASK: 在新的栈中创建一个Activity,如果有这个Activity,就在本栈中启动

CLEAR_TASK:相当于singleTask

CLEAR_TOP:相当于singleTop

5.Intent常用实例:

public void uninstallClick(View v)
{
    //卸载程序
    Uri data=Uri.parse("packge:要卸载的程序的包名");
    String action =Intent.ACTION_DELETE;
    Intent intent=new Intent(action,data);
    startActivity(intent);
}
public void installClick(View v)
{
    //安装程序
    Uri data=Uri.fromFile(new File("/指定路径下面的.apk"));
    String action=Intent.ACTION_VIEW;
    Intent intent=new Intent();
    intent.setAction(action);
    //第二个参数是 一个MIME类型的具体表现。
    intent.setDataAndType(data,"application/vnd.android.package-archive");
    startActivity(intent);
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值