在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
1通过pid
int pid = androidosProcessmyPid(); //获取当前应用程序的PID
androidosProcesskillProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2通过ActivityManager
ActivityManager manager = (ActivityManager)contextgetSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
managerkillBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
这说明你的onTouchEvent没跑到,一般都是先跑onTouchEvent,更具返回值确定是手势滑动还是,点击按下 *** 作
public boolean onTouch(View v, MotionEvent event) {// surfaceWidth = vgetWidth();// surfaceHeight = vgetHeight(); int pointCount = eventgetPointerCount();
if (pointCount == 1) { float x = eventgetX(); float y = eventgetY(); switch (eventgetAction()) {
case MotionEventACTION_DOWN:// mMode = ModeDOUBLE_CLICK; eventLoop(x, y, CommonCONTROL_MSG_DOWN); initX = x; initY = y; break; case MotionEventACTION_UP: // eventLoop(x, y, CommonCONTROL_MSG_UP);// historyX = x;// historyY = y; initX = 0; initY = 0;// mMode = ModeUNDEFINED; break; } return mGestureDetectoronTouchEvent(event); } else { return false; } }
public void eventLoop(float x, float y, int action) { if (action == CommonCONTROL_MSG_MOVE) { mViewDraw(x, y, initX, initY); } else if (action == CommonCONTROL_MSG_DOWN) { mViewClick(x, y); } }}
这个我以前写的一个方法,一直在用,里面有返回值的情况,你照着把对应的 *** 作写下就行
在C#里重写
protected override void DefWndProc(ref Message m)
{
switch(mMsg)
{
case YOUR MSGID:
//do your job
break;
}
baseDefWndProc(ref m);
}或者实现IMessageFilter接口
在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识。
我们都知道,一个Activity 可以启动另一个Activity,即使这个Activity是定义在别一个应用程序里的,比如说,想要给用户展示一个地图的信息,现在已经有一个Activity可以做这件事情,那么现在你的Activity需要做的就是将请求信息放进一个Intent对象里,并且将这个Intent对象传递给startActivity(),那么地图就可显示出来了,但用户按下Back键之后,你的Activity又重新出现在屏幕上。
对用户来讲,显示地图的Activity和你的Activity好像在一个应用程序中的,虽然是他们是定义在其他的应用程序中并且运行在那个应有进程中。Android将你的Activity和借用的那个Activity被放进一个Task中以维持用户的体验。那么Task是以栈的形式组织起来一组相互关联的Activity,栈中底部的Activity就是开辟这个Task的,通常是用户在应用程序启动器中选择的Activity。栈的顶部的Activity是当前正在运行的Activity--用户正在交互 *** 作的Activity。
当一个Activity启动另一个Activity时,新启动的Activity被压进栈中,成为正在运行的Activity。旧的Activity仍然在栈中。当用户按下BACK键之后,正在运行的Activityd出栈,旧的Activity恢复成为运行的Activity。栈中包含对象,因此如果一个任务中开启了同一个Activity子类的的多个对象——例如,多个地图浏览器——则栈对每一个实例都有一个单独的入口。栈中的Activity不会被重新排序,只会被、d出。Task是一组Activity实例组成的栈,不是在manifest文件里的某个类或是元素,所以无法设定一个Task的属性而不管它的Activity,一个Task的所有属性值是在底部的Activity里设置的,这就需要用于Affinity。关于Affinity这里不再详述,大家可以查询文档。
一个Task里的所有Activity作为一个整体运转。整个Task(整个Activity堆栈)可以被推到前台或被推到后台。假设一个正在运行的Task中有四个Activity——正在运行的Activity下面有三个Activity,这时用户按下HOME键,回到应有程序启动器然后运行新的应用程序(实际上是运行了一个新的Task),那么当前的Task就退到了后台,新开启的应用程序的root Activity此时就显示出来了,一段时间后,用户又回到应用程序器,又重新选择了之前的那个应用程序(先前的那个Task),那么先前的那个Task此时又回到了前台了,当用户按下BACK键时,屏幕不是显示刚刚离开的那个新开启的那个应用程序的Activity,而是被除回到前台的那个Task的栈顶Activity,将这个Task的下一个Activity显示出来。 上述便是Activity和Task一般的行为,但是这个行为的几乎所有方面都是可以修改的。Activity和Task的关系,以及Task中Activity的行为,是受启动该Activity的Intent对象的标识和在manifest文件中的Activity的元素的属性共同影响的。
以上是关于Activity和Task的描述。
在开发Android项目时,用户难免会进行程序切换,在切换过程中,程序将进入后台运行,需要用时再通过任务管理器或是重新点击程序或是通过点击信息通知栏中的图标返回原来的界面。这种效果类似于腾讯QQ的效果,打开QQ后显示主界面,在使用其他的程序时,QQ将以图标的形式显示在信息通知栏里,如果再用到QQ时再点击信息通知栏中的图标显示QQ主界面。
这样的:如果在同一台机器上登录一个账户不会不会出现问题,在登录成功后都回由端口返回登录成功的信息,可是同时登录两个账号的时,第二个账号登陆成功的信息还是返回到第一个账号中,看了下服务器上的信息,两个账号使用了同样的ip和端口号,怎么解决这样的问题呢,我用的UDP通信,是不两个进程不能监听同一端口呢?
就像QQ一样,同一机器登录两个账号,怎么实现端口的监听呢,能保证信息发送到正确的账号中,它是怎么实现监听同一端口的?
首先将 iPhone 连接到 PC,并在 Mac 或 PC 上下载名为 iMazing 应用程序。(非广告)安装后选择免费试用。首先需要备份 iPhone 上的数据。您单击每个屏幕时保留所有默认设置。完成基本配置后,需要接受该工具的许可,然后单击“开始分析”按钮。
郑州飞马软件科技有限公司是一家以为面向企业级用户的、专业的企业资源管理软件的研究开发、产品销售和技术开发服务为主营业务的公司。
郑州飞马软件科技有限公司(FMSOFT) 成立于2015年,是充满热情和实力的企业。
FM-ERP(飞马企业级资源管理平台),是一个整合物资、人力、财务、信息资源管理集成一体化的企业管理软件,应用范围包括制造业、零售业、服务业、银行业、电信业、政府机关和学校等事业部门。软件运作可跨越多个部门,使业务流程合理化、绩效监控动态化、管理改善持续化,达到改善企业业务流程以提高企业核心竞争力的明显效果。
1、以基于“FM-ERP(飞马企业级资源管理平台)”的综合应用为主营业务的企业销售资源管理信息化市场:针对各类型企业的销售信息,建设统一的企业级客户信息资源中心,并建设对应的客户资源管理系统,最大限度地管理和开发利用客户的信息资源,实现综合应用。
2、以基于“FM-ERP(飞马企业级资源管理平台)”的行业应用为主营业务的企业办公信息化市场:针对各类型企业内部办公流程,提出优化解决方案,建立相关的办公自动化平台,最大程度上提升工作效率,加强管理者对公司的掌控力并辅助做出合理的决策分析。
以上就是关于Android 能不能监听到第三方应用App的启动和退出全部的内容,包括:Android 能不能监听到第三方应用App的启动和退出、请问在Android的应用程序开发中,如何监听软键盘上的onTouchEvent事件、c#编应用程序,怎么监听其他进程(用c编写)的发来的消息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)