首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

android应用内为某个Activity创建快捷方式按home键的问题

有时开发应用后,会为某个Activity创建一个桌面快捷方式,以后希望通过快捷方式直接进入到该Activity里,加Activity A。譬如百度卫士的桌面加速球就是这样。  ...但是会碰到如下问题,当你的应用没有完全退出,譬如在一个其他的Activity B里,按下home键,在通过桌面Activity A的快捷方式点击,系统并不会进入到Activity A里,而是会先打开你未关闭的...这是由于android系统的task决定的,如果不特别指明某个Activity的task,则整个application是在同一个以包名命名的task里。...当这个task里有一个Activity在后台时,你想重新进入到该task里的某个Activity,系统会优化打开后台的Activity,既Activity B   如果你想每次无论什么情况,点击Activity...那你需要在Manifest里为 Activity A指明一个不同的task,android:taskAffinity = "com.wiwigo.launcher" 命名随意,只要不与系统包名一样即可。

1K30

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法

重新创建目标Activity Intent.FLAG_ACTIVITY_SINGLE_TOP:若启动的Activity位于任务栈栈顶,那么此Activity的实例就不会重建,而是重用栈顶的实例( 调用...(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 步骤1:该标记位作用:销毁目标Activity和它之上的所有Activity重新创建目标Activity...之后再重新开启进程 & 启动 之前除当前 Activity 外的已启动的 Activity 原因:* Android中的ActivityManager时刻监听着进程*。...应用场景 当任务栈只剩下当前Activity(即退出了其余 Activity),调用即可退出该进程,即在(步骤1)结束当前 App 所有的 Activity 调用该方法即可一键退出App(更多体现在结束进程上...) 注: 与 “在最后一个Activity调用 finish()”的区别:finish()不会结束进程,而上述两个方法会 至此,关于 一键退出App 的两个步骤讲解完毕。

1.8K42

Carson带你学Android:这里涵盖了所有实现 “一键退出 App” 的方法

通过 Android 组件:Activity 方法1:采用Activity启动模式:SingleTask 原理 App的入口 Activity 采用 SingleTask 启动模式 a....,重新创建目标Activity Intent.FLAG_ACTIVITY_SINGLE_TOP:若启动的Activity位于任务栈栈顶,那么此Activity的实例就不会重建,而是重用栈顶的实例( 调用...(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 步骤1:该标记位作用:销毁目标Activity和它之上的所有Activity重新创建目标Activity...启动 Activity1 、 Activity2 即在Android 中,调用上述Dalvik VM本地方法结果是: 结束当前 Activity & 结束进程 之后再重新开启进程 & 启动 之前除当前...应用场景 当任务栈只剩下当前Activity(即退出了其余 Activity),调用即可退出该进程,即在(步骤1)结束当前 App 所有的 Activity 调用该方法即可一键退出App(更多体现在结束进程上

72020

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法

和它之上的所有Activity重新创建目标Activity Intent.FLAG_ACTIVITY_SINGLE_TOP:若启动的Activity位于任务栈栈顶,那么此Activity的实例就不会重建...(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 步骤1:该标记位作用:销毁目标Activity和它之上的所有Activity重新创建目标Activity...作用 结束当前 Activity & 结束进程 即 在 (步骤1)结束当前 App 所有的 Activity 调用该方法即可一键退出 App(更多体现在结束进程上) 具体使用 // 方式1:android.os.Process.killProcess...即在Android 中,调用上述Dalvik VM本地方法结果是: 结束当前 Activity & 结束进程 之后再重新开启进程 & 启动 之前除当前 Activity 外的已启动的 Activity...当任务栈只剩下当前Activity(即退出了其余 Activity),调用即可退出该进程,即在(步骤1)结束当前 App 所有的 Activity 调用该方法即可一键退出App(更多体现在结束进程上

53320

Android退出应用程序方法总结

Android退出应用程序方法总结 在Android开发中,我们运行了应用程序,都需要退出应用的,那么该如何退出应用,又都有哪些实现方式呢?...android.os.Process.killProcess(android.os.Process.myPid()); System.exit(): Java中结束进程的方法,调用它将关闭当前的JVM...销毁任务栈 直接调用系统 API获取当前的任务栈,把里面的Activity全部销毁掉。不过该方法简单粗暴,需要 API 21(Android 5.0)以上才可以使用。...懒人式 1)MainActivity设置为singleTask android:launchMode="singleTask" 2)退出出口放置在MainActivity private boolean...(例如QQ、微信等) 方法一: moveTaskToBack(true);//Activity退到后台,注意不是finish()退出。

3.4K20

安卓的四大组件之Activity-活动

一般来说,调用onPause方法activity实例仍然存在与内存中,activity的所有的信息和状态数据不会消失,当activity重新回到前台之后,所有的改变会得到保留。...但是当系统内存不足时,调用onPause和onStop方法activity的实例可能会被系统摧毁,此时内存中就不会有activity的实例存在了。...onSaveInstanceState方法接收一个Bundle类型的参数,开发者可以状态数据存储到这个Bundle对象中,这样即使activity被系统回收了,但是用户重启这个activity调用它的...5、横竖屏切换的Activity的生命周期 切换横竖屏的时候,会不会重新调用Acticity的生命周期方法,取决于此Activity有没有在清单文件里面配置 android:configChanges...如果只是关闭一个Activity,我们只需要调用一下finish方法即可。

79950

应用首页Activity的单例实现

Activity,按home键回要主桌面,再从桌面应用图标启动应用,会发现重新回到了主Activity。...,第三方startIntent时,没有设置Intent的category属性,默认值为android.intent.category.DEFAULT,因此会重新创建新的Activity。...我们知道,重新创建Activity并且Ativity添加到栈顶时,需要将该任务栈带到前台,也就是说,如果从第三方跳转到主Activity,会将我们的应用切到前台,同时创建Activity;为了保证只有一个主...); return true; } } 从以上代码看到,首次onCreateActivity保存下来,如果重复创建,则将新创建Activity finish掉,并且调用已有...,会额外增加100-200ms耗时,由于该Activity是singleInstance的启动模式,可以创建finish

2.5K61

Activity基础篇

onCreate() 创建activity初次创建时被调用,该方法中一般进行一些静态设置。...onDestroy() 销毁,在activity被销毁前所调用的最后一个方法 onRestart() 重新启动 这七个方法贯穿整个activity的生命周期。...一旦我们退出软件,系统会执行activity的onDestroy()方法,activity从系统中完全移除,我们通常是在执行了 onPause() and onStop() 之后再调用onDestroy...十一.finish()和onDestroy()有什么区别 从上面的代码运行结果来看,控制台上输出了“onDestroy方法被调用”,由此可见,在执行finish()时执行了onDestroy()方法。...实际上他们的区别在于 onDestroy()是生命周期方法,是你的Activity结束的时候由Android系统调用的,你不能直接调用onDestroy()来结束你的Activity,一般做法是调用finish

44820

Android创建启动画面

当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。...随后 Activity Manager 激活处于栈第二层的 Activity重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。...当我们调用 SplashActivity.finish()方法时(我们是在SplashActivity中通过SplashActivity.this.finish()调用的),SplashActivity...上图的例子是 从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1,当我们在 Activity2中调用 Activity2.finish...()方法时,Activity Manager 重新激活 Activity1 并入栈,Activity2 从 Active 状态转换 Stoped 状态,同时标注Activity2可以被“回收” 。

83420

Android单一实例全局可调用网络加载弹窗

解决方法,创建两个单例,保证intent对象和dialog对象都保持唯一。 实际测试发现,第一次可以正常显示,第二次就会崩溃。 原因:当activity被销毁,又重新创建的时候,上下文会改变。...因为单例的原因,你dialog的上下文还是第一次activity创建时候的上下文,那么你再次调用这个dialog的时候,就会报activity不存在的异常。 到这里似乎没有办法解决了。...我既然已经创建出一个专门承载这个dialog的activity了,而且activity的死活是完全和dialog一致的,那么我为什么还要再去创建一个dialog呢?...); //Activity实例添加到AppManager的堆栈 MyActivityManager.getAppManager().addActivity(this); Transparentstatusbar...} else { Log.d("网络加载弹窗", "调用强制关闭"); ((Activity)NetWaitDialogContext).finish(); } }

1.6K20

关于Android开发中遇到的内存不够的情况

最近在做公司项目的时候,老是遇到内存不够导致APP资源被系统回收的情况,但是回到之前的界面,调用android.os.Process.killProcess(android.os.Process.myPid...当Android系统的内存不足时,会根据以下的内存回收规则来回收内存: 1.先回收与其他Activity或Service/Intent Receiver无关的进程(即优先回收独立的Activity)...回收service进程 4.快不行啦,关掉可见的Activity进程 5.关闭当前的Activity android独特的内存机制,导致系统内存不足时会销毁后台的应用,这里我们研究一下应用被销毁重新加载时的情形...的进程都不相同) (就是先打开c,finish了c时加载b,finish了b时加载a) 注意: 这个时候应用中的全局静态变量全部重置(有默认值的为默认值,没有默认值的为null) 这就使得出现了错误的数据...// 因为系统加载的所有的Activity不在同一个线程,所以要结束除了loginActivity之外的其他进程 android.os.Process.killProcess(android.os.Process.myPid

58020

Android | Jetpack 处理回退事件的新姿势 —— OnBackPressedDispatcher

首先,在 Fragment attach 时,会创建一个回调对象加入分发器,回调处理时弹出返回栈栈顶事务。不过初始状态是未启用,只有当事务添加进返回栈,才会修改回调对象为启用状态。...因为 Activity 实际上并没有销毁,所以用户下次返回应用时是热启动; 3、调用 finish(): 结束当前 Activity,如果当前 Activity 处于栈底,则销毁 Activity 任务栈...需要注意的是,进程结束内存不会立即被回收,将来(一段时间内)用户重新启动应用时是温启动,启动速度比冷启动更快; 4、调用 System.exit(0) 杀死应用: 杀死进程 JVM,将来用户重新启动为冷启动...因为这些 API 的表现并不理想: 1、当调用Activity 不位于栈顶时,杀死进程系统会立即重新启动 App(可能是系统认为 前台 App 是意外终止的,会自动重启); 2、当 App 退出,...finishAfterTransition():执行转场动画 finish Activity,需要通过 ActivityOptions 定义转场动画。

1.3K20
领券