在公司里接手了一个后期的项目,由于项目前期对activity栈管理的不够谨慎,所以导致了在某些情况下程序退出的时候没有将activity栈清除掉.在网上找到的无非就是那几种例子,都不是最好的解决办法.今天尝试了一种方式,感觉效果还是可以的. 代码: ActivityManager am = (ActivityManager)getSystemService(getApplication().ACTIVITY_SERVICE); List<ActivityManager.AppTask> app…
现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: 一.按一次后退键显示一个对话框决定是否退出 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub //点击了后退键 if(keyCode == KeyE…
最近在学习QT,自己仿写了一个简单的QT绘图程序,但是在退出时总是报错,断言错误: 报错主要问题在_BLOCK_TYPE_IS_VALID(pHead->nBlockUse),是在关闭窗口时报的错: 先前考虑是析构函数有问题,重写并且排查相关变量并未发现问题. 根据报错问题又推测栈调用出现内存溢出,寻找程序中所有的链表和栈调用.未果. 最后用了最笨的方法,将构造函数中所有变量挨个遍历,最终确定问题出在Qt的setAttribute(Qt::WA_DeleteOnClose)这行代码上. 网上查询…
 场景:实现安装一个apk应用程序的过程.界面如下: 编写如下应用,应用结构如下: <RelativeLayout   编写activity_main.xml布局: <RelativeLayout 版本开始的 .setContentText("我是内容") .setSmallIcon(R.drawable.notification) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable…
目录截图: 1.activity_main.xml 主界面效果: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:scrollbars="vertical" android:layout_width="match_…
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.…
Android退出时,有的Activity可能没有被关闭.为了在Android退出时关闭所有的Activity,设计了以下的类: //关闭Activity的类 public class CloseActivityClass{ public static List<Activity> activityList = new ArrayList<Activity>(); public static void exitClient(Context ctx) { // 关闭所有Activit…
http://blog.csdn.net/wangqilin8888/article/details/7464806 当我们在一个应用中用到Toaster来做为提示时,发现这样一个问题,当某个条件服合时,会弹出Toaster的对话框,不停地执行这个条件,会不停进行Toaster.show的显示,执行几次就现示几次,即使这个应用程序退出也会不停地Toast.show地显示,这样一来会给用户带来一种不好体验.当我们将应用程序退出了,就不应该Toast.show显示了. 我们可以在应用程序退出onDe…
本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退…
前几天程序新加一个功能之后,其中用到了boost的lexical_cast<float>,发现在关闭命令行窗口的时候,程序报错,是程序退出清理时候报的错误. 一开始以为是程序新增的功能有问题,发现去除新功能之后,随便在一个函数中使用lexical_cast<float>,程序在退出的时候都会报错. 所以怀疑是自己程序功能异常,包括可能的堆栈异常,针对lexical_cast<float>部分的数据内存都进行了检查,都没有问题.而且将lexical_cast<flo…
http://www.cppblog.com/elva/archive/2008/09/10/61544.html 收集一些网上的资料,以便参考: http://blog.chinaunix.net/u2/69143/showart_1087349.html 当服务器close一个连接时,若client端接着发数据.根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了.    根据信号的默…
PS: 如果服务器程序不忽略SIGPIPE,在某些时候TCP writer收到这个信号,会导致进程退出 The rule that applies is: When a process writes to a socket that has received an RST, the SIGPIPE signal is sent to the process. The default action of this signal is to terminate the process, so the…
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.…
初步探究java中程序退出.GC垃圾回收时,socket tcp连接的行为 今天在项目开发中需要用到socket tcp连接相关(作为tcp客户端),在思考中发觉需要理清socket主动.被动关闭时发生了什么,所以做了一番实验,验证socket tcp连接在调用close.被GC回收.程序运行完毕退出.程序进程被杀掉时,tcp会产生什么行为.得出了一些结论,记录于此同时分享给大家. 先写出得到的结论: java程序运行完毕退出和被杀进程时,socket tcp连接会被关闭.而且是通过发送RST方…
C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出,这里使用到了Windows API SetConsoleCtrlHandler函数 注意:在VS中调试执行时,在处理程序例程中设置断点,不会中断:会提示:无可用源,如下图: 完整示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43…
windows 2003 远程桌面关闭 运行程序退出解决 原文:http://2798996.blog.51cto.com/2788996/503365 情况:远程桌面到2003,运行一个程序,然后关闭远程桌面,一段时间后所运行的程序也被关闭了. 解决: 开始-->运行-->gpedit.msc计算机配置->管理模板->Windows组件->终端服务->会话把"为断开的会话设置时间限制"改为"未被配置". 如果通过上面的操作,还会…
这篇文章主要介绍了java实现创建临时文件然后在程序退出时自动删除文件,从个人项目中提取出来的,小伙伴们可以直接拿走使用. 通过java的File类创建临时文件,然后在程序退出时自动删除临时文件.下面将通过创建一个JFrame界面,点击创建按钮在当前目录下面创建temp文件夹且创建一个以mytempfile******.tmp格式的文本文件.代码如下: import java.io.*; import java.util.*; import javax.swing.*; import java.…
有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源.c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理.这里总结一下这些情况,如何获取一个统一的退出处理的点,说白了就是写一个回调函数,让他在程序正常或异常退出时调用. 先看正常退出,即调用exit或者main函数return亦或最后一个线程正常退出时,如何捕获退出事件. 使用atexit函数.头文件:#include<stdlib.h>, 函数原型:void…
  这篇文章主要介绍了C#中WinForm程序退出方法,实例总结了技巧退出WinForm程序窗口的各种常用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就…
exe崩溃用windbgattach后有宝贵现场,可看程序退出线程等,千万不要清屏…
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.…
前言 今天在开发中对Java程序的退出产生了困惑,因为题主之前写过一段时间Go,这两者的程序退出逻辑是不同的,下面首先给出结论,再通过简单的例子来介绍. 对于Java程序,Main线程退出,如果当前存在非守护线程,则Java程序会等待非守护线程都执行完再退出:如果只存在守护线程,则会直接退出.这是JVM底层实现的机制. 对于Go程序,如果main协程已经退出,那么其他任何协程都将退出.在非main协程中创建的子协程,如果父协程退出了,子协程依然可以正常运行. Java程序退出 package m…
程序退出状态码 前言 在本篇文章当中主要给大家介绍一个shell的小知识--状态码.这是当我们的程序退出的时候,子进程会将自己程序的退出码传递给父进程,有时候我们可以利用这一操作做一些进程退出之后的事情,比如当程序执行失败或者被某个信号杀死我们就可以了解到,然后做出对应的措施. 状态码简介 上图是一个zsh的截图,当我们执行命令asdsad之后,因为没有这个命令,所以zsh(类似于bash的一种shell),输出没有找到这个命令,但是我们发现图中箭头️由绿色变成红色,表示程序不是正常退出.现在有…
前言 关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够.这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理. 1.ActivityStack ActivityStack是一个管理类,用来管理系统所有Activity的各种状态,其内部维护了TaskRecord的列表,因此从Activity任务栈这一角度来说,ActivityStack也可以理解为Activity堆栈.它由ActivityStackSupervisor来进行管理的,而…
Activity栈与任务管理探究1--栈与任务的概述 内容概览 1. 前言 2. Activity中的Stack 3. Activity中的Task 4. Activity栈与任务管理基本原则 1. 前言 Activity是Android的四大组件之一,是Android开发中非常重要的一环.无论是Android开发新手,还是老司机,在日常的开发工作中,都会经常与Activity/Intent打交道.在开发之初,对Activity的很多知识都是似是而非,一知半解,尤其是Activity栈(Stac…
在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplication().getActiveScreen()来得到位于最上一层的Screen的实例,并且使用UiApplication.getUiApplication().popScreen()来关闭一个Screen或关闭当前最上一层的Screen,但是Android却未提供相应的功能,只能在一个Activit…
ActivityManagerService要管理四大组件,那四大组件就必须在AMS中有存在的形式,这里先从AMS 如何管理Activity 谈起: Activity在AMS 中存在的形式为ActivityRecord: AMS以Task的方式管理Activity,Task在AMS存在的形式为TaskRecord:TaskRecord中的mActivities用栈的方式管理ActivityRecord: TaskRecord在AMS中依靠ActivityStack去管理,从命名来看,Activi…
一.背景 在android开发过程最经常使用的组件非activity莫属. 通过分析activity的各种跳转,执行同学能够分析用户的各种行为.更重要的一点是在做插件化的过程中,我们经常会对activity进行各种反射,来实现各种需求. 二.实现 2.1 通过对"android.app.ActivityThread"进行反射.获取android系统的activity栈 遍历activity栈能够得到当前应用中的全部存活的activity. Log.e("Baseactivty…
package com.example.yanlei.yl; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import android.text.Html;…
一共有4种方式: 1.this.Close();  只是关闭当前窗口,若不是主窗体,无法退出程序,另外若有托管线程(非主线程),也无法干净的退出: 2.Application.Exit();强制所有消息终止,退出所有的窗体,但若有托管线程(非主线程),也无法干净的退出: 3.Application.ExitThread();强制终止线程上的所有消息,同样面临其他线程无法正确退出的问题: 4.System.Environment.Exit(0);这是最彻底的退出方式,不管什么线程都被强制退出,把程…