在实习的时候做的一个项目,当时做IM就遇到一个棘手的问题,就是不同的ID给自己发送消息且自己不在聊天界面,这个时候点击NotificationBar的时候就应该跳转到聊天界面,
还有一种很关键的场景: 自己在聊天界面,却是不同的用户发来的消息,点击NotificationBar的时候就应该关闭当前加载新的,当时我采用的是比较笨的办法通过去遍历ActivityStack,然后判断是否有聊天的Activity,有的话弹到StackTop上,这样能解决,但是不是很好的做法,今天阅读别人的源码发现一个有意思的CallBack.
// 点击notification bar进入聊天页面,保证只有一个聊天页面 String username = intent.getStringExtra("userId"); if (toChatUsername.equals(username)) super.onNewIntent(intent); else {// 如果是当前的会话,关闭自己重新启动Intent. finish(); startActivity(intent); }
记录下来.给那些IM开发提供帮助.