综合以前写的线程例子 演变成现在这个样子
具体的思路 跟上一个帖子没有什么变化,只是优化了点代码! 这里就不写注释了!
http://44289533.iteye.com/admin/blogs/1714483可能代码不是很周到,但是基本可以实现超时的问题,如果大家有更好的建议 不妨留下您的建议,咱们共同讨论一下! 感谢了!
我的Skype: chu_jingwei 初京蔚
注: handler switch case 3: 这个模块是在 数据访问层 假如出现SQLException 发送的消息a
private Thread threadA;
private Thread threadB;
private boolean isTimeOut;
private boolean isAllDone;
private boolean isStopThread;
isTimeOut = false;
isAllDone = false;
isStopThread = false;
showWaitDialogNoTitle(getString(R.string.MSG_I_0004));
//タイムアウトThread
threadA = new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
try {
Thread.sleep(CHECK_TIME);
if (!isAllDone && !isStopThread&&!Thread.interrupted()) {
isTimeOut = true;
threadB.interrupt();
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
}
} catch (InterruptedException e) {
// e.printStackTrace();
}
Looper.loop();
}
});
threadA.setDaemon(true);
threadA.start();
//データの獲得Thread
threadB = new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
list = countListBll.getAllByJan(handler, productCD);//access DB
if (!isTimeOut && !isStopThread&&!Thread.interrupted()) {
isAllDone = true;
threadA.interrupt();
Message msg = new Message();
msg.what = 2;
handler.sendMessage(msg);
}
Looper.loop();
}
});
threadB.start();
} else {
// is not net work
if (!currentDialog.isShowing()) {
String msg = getString(R.string.MSG_E_0003);
String okStr = getString(R.string.MSG_COMMON_OK);
showAlertDialog_OK(msg, okStr,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
stopThread();
finish();
}
});
}
}
/**
* Threadを閉める
*/
private void stopThread() {
if (threadA != null) {
threadA.interrupt();
}
if (threadB != null) {
threadB.interrupt();
}
}
/**
* UI更新Handler
*/
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
if (isTimeOut && !isAllDone) {
Log.i("====", ">>>>>>TimeOut");
String msgStr = getString(R.string.MESSAGE_CODE_U0014);
String okStr = getString(R.string.MSG_COMMON_OK);
showAlertDialog_OK(msgStr, okStr,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
lv_detial.setAdapter(null);
}
});
}
break;
case 2:
if (isAllDone && !isTimeOut) {
initListView();
}
break;
case 3:
// object has benn closed
isStopThread = true;// stop threadA threadB
stopThread();
String msgStr = getString(R.string.MSG_E_0003);
String okStr = getString(R.string.MSG_COMMON_OK);
showAlertDialog_OK(msgStr, okStr,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
stopThread();
finish();
}
});
break;
}
super.handleMessage(msg);
}
};
分享到:
相关推荐
《BitTiger_Training_Jingwei:Java编程的深度学习之旅》 BitTiger_Training_Jingwei 是一个专门针对Java编程的学习资源集合,由知名教育机构BitTiger(比特虎)提供,主要由李经伟老师负责指导,旨在帮助学员深入...
BruceBlog程序源码(采用NHibernate) 博客程序是一个单用户博客程序,基于Asp.net技术 使用了ORM数据持久框架NHibernate 使用最简单的Access文件数据库(App_Data下为Access数据库文件)开发完成的 ...
#资源达人分享计划#
- `Database` 设置为 `"jingwei"` 表示目标数据库名称。 - `LogPass` 和 `LogId` 分别设置为空字符串和 `"sa"`,表示使用默认的管理员账号进行登录。 - `AutoCommit` 设置为 `False` 表示事务管理需要手动提交。 **...
《C语言实现的俄罗斯方块》 在编程领域,俄罗斯方块是一款经典的示例游戏,它可以帮助初学者理解和掌握基本的编程概念。本项目是用C语言编写的,旨在提供一个直观的学习平台,让学习者了解游戏开发的基本流程以及...
Filled with determination, Jingwei vowed to fill the sea with stones, as a symbol of her resolve and never-ending spirit. This story, known as 'Jingwei Filling the Sea', teaches us about perseverance...
author = {Wang, He and Sridhar, Srinath and Huang, Jingwei and Valentin, Julien and Song, Shuran and Guibas, Leonidas J.}, title = {Normalized Object Coordinate Space for Category-Level 6D Object ...
图像细化的matlab原始码经纬 经纬是一个开放源代码测试平台,用于评估图像标签分配,标签优化和基于标签的图像检索方法。 它是作为的一部分开发的,旨在及时反映该领域的最新技术。 依存关系 和和。...
特征选择是机器学习和数据挖掘中的关键步骤,其目的是从原始数据集中挑选出最相关、最有影响力的特征子集,以提高模型的效率和性能。在处理高维数据时,特征选择尤为重要,因为它可以减少计算复杂性,降低过拟合风险...
本文档详细介绍了以JingWei板和Windows CE操作系统为核心的一款手持式电子阅读器的设计与实现。 首先,该电子阅读器的硬件平台由JingWei板、外围基本扩展电路和AV扩展选件构成。JingWei板采用了Intel StrongARM SA-...
matlab图片叠加的代码ObjectNet3D_toolbox 由斯坦福大学CVGL的Yu ...Jingwei and Choy, Christopher and Su, Hao and Mottaghi, Roozbeh and Guibas, Leonidas and Savarese, Silvio}, title = {ObjectNet3D:
- `miaobiao()`,`mzhuan()` 和 `jingwei()` 函数用于秒表和模式切换。 - `bells()` 调用显示当前时间或闹钟。 - 使用`switch`语句处理不同模式下的时间显示和修改。 - 在秒表模式下,根据按键控制计时器的开始...
“”的实现(EMNLP 2015)。 免责声明:此研究代码令人讨厌,缺乏适当的设计或... 如果您将C-LDA / C-HDP用于研究目的,请使用以下引用: @InProceedings{zhang-EtAl:2015:EMNLP2, author = {Zhang, Jingwei and Ger
超越类条件假设:对抗依赖于... author={Chen, Pengfei and Ye, Junjie and Chen, Guangyong and Zhao, Jingwei and Heng, Pheng-Ann}, journal={arXiv preprint arXiv:2012.05458}, year={2020} } 0. 要求 Python
- Beijing Jingwei Hirain Technologies Co., Inc. - **市场占有率**: - 全球前五大LED汽车氛围灯生产商占据约50%的市场份额,显示出市场竞争激烈。 - **产品特性与规格**: - 不同厂商提供的LED汽车氛围灯...
* JingWei(车载台) 八、无线集群对讲机的拆线键 无线集群对讲机的拆线键是指在通话完毕后需要及时拆线键,以避免隐私泄露。 九、无线集群对讲机的实践应用 无线集群对讲机的实践应用非常广泛,例如: * 警察...
- Jingwei Textile Machinery、Ruanyuan、Wuyang Textile Machinery、Xingang Textile Machinery等为中国企业在欧洲市场上的代表。 - Diba Textile Machinery、Longlongsheng等也是值得关注的本土企业。 - **市场...
matlab图片叠加的代码ObjectNet3D_toolbox 由斯坦福大学CVGL的Yu ...Jingwei and Choy, Christopher and Su, Hao and Mottaghi, Roozbeh and Guibas, Leonidas and Savarese, Silvio}, title = {ObjectNet3D:
author={Chen, Pengfei and Ye, Junjie and Chen, Guangyong and Zhao, Jingwei and Heng, Pheng-Ann}, journal={arXiv preprint arXiv:2012.04193}, year={2020} } 在对角主导类条件标签噪声下,主要结论如下。 ...
这样,在创建新对象时,如`new employee("jingwei", 20, 'M', 100, false)`,对象的属性就会根据传递的参数进行初始化。 通过使用构造函数,我们可以确保每个新创建的对象在诞生之初就具有合适的初始状态,而不是...