newintent的教训

onCreate是用来创建一个Activity也就是创建一个窗体,但一个Activty处于任务栈的顶端,若再次调用startActivity去创建它,则不会再次创建。若你想利用已有的Acivity去处理别的Intent时,你就可以利用onNewIntent来处理。在onNewIntent里面就会获得新的Intent.

今天使用 单例模式 来实现应用退出

    Intent mIntent = new Intent();  
        mIntent.setClass(mContext, mainActivity.class);  
        //这里设置flag还是比较 重要的  
        mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
        //发出退出程序指示  
        mIntent.putExtra("flag", EXIT_APPLICATION);  
        mContext.startActivity(mIntent); 

但是在起始页的 

@Override
protected void onNewIntent(Intent intent) {
// 实现主窗单例模式
// 再次启动该activity就不会再调用 oncreate->onstart这些方法了


nt flag = getIntent().getIntExtra("flag", 0)
if (flag == SysUtil.EXIT_APPLICATION) {
finish();
}
super.onNewIntent(intent);
}

怎么也得不到flag 的正确值 

原来是  在 onNewIntent 中 

Note that getIntent() still returns the original Intent. You can use setIntent(Intent) to update it to this new Intent. 

改为

int flag = intent.getIntExtra("flag", 0);就OK了 

不看函数说明的教训啊


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值