EChat(简易聊天项目)四、模拟强制下线
利用标准广播或本地广播模拟聊天应用中用户异地登录时的强制下线功能
①修改IndexActivity中代码
public class IndexActivity extends BaseActivity {private BroadcastReceiver receiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.index_layout);...TextView forceOffline = (TextView) findViewById(R.id.force_offline);forceOffline.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("com.example.androidlogin.FORCE_OFFLINE");sendBroadcast(intent);}});...}...}
②修改BaseActivity中代码
public class BaseActivity extends AppCompatActivity{private ForceOfflineReceiver receiver;protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);}protected void onResume(){super.onResume();IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("com.example.androidlogin.FORCE_OFFLINE");receiver = new ForceOfflineReceiver();registerReceiver(receiver,intentFilter);}protected void onPause() {super.onPause();if (receiver != null) {unregisterReceiver(receiver);receiver = null;}}protected void onDestroy(){super.onDestroy();ActivityCollector.removeActivity(this);}class ForceOfflineReceiver extends BroadcastReceiver {@Overridepublic void onReceive(final Context context, Intent intent) {AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle("Warning");builder.setMessage("You are forced to be offline. Please try to login again.");builder.setCancelable(false);builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {ActivityCollector.finishAll(); // 销毁所有活动Intent intent = new Intent(context, LoginActivity.class);context.startActivity(intent); // 重新启动LoginActivity}});builder.show();}}}
运行结果
输入账号密码登录 点击强制下线 回到登录页面
EChat(简易聊天项目)四、模拟强制下线相关推荐
- EChat(简易聊天项目)八、Socket实现即时通信(包括部分修改)
利用Socket实现即时通信 在MyEclipse中写Server端 工程结构如图 SocketMessage.java 该类是一个消息类,用于表示消息是由谁发给谁的.消息内容是什么.接收时间是多少, ...
- EChat(简易聊天项目)七、保存聊天记录
(二)使用LitePal数据库保存用户聊天记录 分析: 首先需要进行数据库的创建,需要一张表(自定义类HistoryChat)来保存聊天记录信息, 其次,需要将聊天的记录增加到数据库对应记录中:最后需 ...
- EChat(简易聊天项目)二、好友列表实现
使用 ExpandableListView控件实现好友列表,登录后跳转到FriendActivity 修改friend_layout.xml文件 <?xml version="1.0& ...
- EChat(简易聊天项目)三、聊天界面UI实现
一.添加部分控件完善登入过程 ① 设计应用登录界面加入ImageView 在login_layout.xml中加入以下代码 <?xml version="1.0" encod ...
- EChat(简易聊天项目)五、存储聊天记录中的图片
利用文件存储实现存储聊天记录中的图片 首先先需要使聊天界面可以发送图片,然后再对其进行存储操作 ①修改Msg类,增加了imgpath,即图片路径 public class Msg {public st ...
- EChat(简易聊天项目)六、实现记住密码和自动登录
利用SharedPreferences登录界面记住密码和自动登录 ①修改login_layout.xml文件,增加如下代码,即添加2个勾选框 <LinearLayoutandroid:orien ...
- EChat(简易聊天项目)一、登录注册实现
具体实现代码: ① 活动LoginActivity(负责登录界面) package com.example.androidlogin;import android.content.Intent; im ...
- Android实现强制下线(不同应用之间)功能————简易微信聊天示例
具体需要看具体的实际情况,这是曾经遇到的问题以及解决方案 实现强制下线(不同应用之间)功能----简易微信聊天示例 强制下线功能需要先关闭所有活动,然后在回到登录界面. 新建一个ActivityCol ...
- 2020暑假集训项目——Java简易聊天室
经过一周的学习与搬砖,我成功的完成了暑假集训的第一个项目--Java简易聊天室,这里对整个项目做一个总结.(文末附下载地址) 本项目支持的功能: 1.可同时开启多个客户端进行多人聊天: 2.可与在线的 ...
最新文章
- UNIX编程笔记:关于停止的进程接收信号的问题
- 使用OPENROWSET爆破SQL Server密码
- oracle 添加登陆数据库触发器--记录IP 地址
- GDCM:DICOM转储到DshibaDTI的测试程序
- “CEPH浅析”系列之七——关于CEPH的若干想法
- CodeForces 580A Kefa and First Steps
- oem718d 基准站设置_RTK电台、网络模式作业设置流程
- 小学生们在B站讲算法,这么内卷么?
- mysql插入日期_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
- 【Python实例第26讲】一个主成分的例子
- eagle打开的brd和sch转换为AD打开的原理图和PCB
- java版spring cloud电商源码+spring boot+redis多租户社交电子商务平台
- 领英动态和文章如何发布才能更好的带来询盘?
- IEduChina2019国际学校展暨国际教育论坛温暖深圳
- java基础类型判空_java基础类型判空
- Manjaro Linux KDE 安装后的配置
- elasticsearch.client.transport.TransportClientNodesService[420] - node {#transport#-1}
- cpu负载过高产生的原因及排查
- PhysicalDrive
- 义乌结汇用个体户安全么
热门文章
- 4.Java数据库连接_1.JDBC (Java DB Connection)简介
- 第26课:MAT中的Dominator Tree与Retained Set详解
- C/C++ 如何设计框架
- mysql索引优化分析_MySQL索引优化与分析(重要)
- BZOJ1022 [SHOI2008]小约翰的游戏John 【博弈论】
- 迷你图书管理器1.2 - 面向对象+集合
- 射频百科 | 限幅器的使用指南
- 牛客网C语言编程初学者入门训练135题
- 人人站 CMSv1.4.2 已更新,安全升级与功能修复
- php 数组的结构和定义