精华内容
下载资源
问答
  • Android多任务切换效果

    千次阅读 2017-11-07 17:16:05
    就是点击手机多任务键的效果,上下翻滚,点击选择,侧滑删除效果。 https://github.com/vikramkakkar/DeckView

    就是点击手机多任务键的效果,上下翻滚,点击选择,侧滑删除效果。
    https://github.com/vikramkakkar/DeckView

    展开全文
  • 这里会以个场景列子进行分析,在分析之前先了解一下基本的概念。 ? ? ? ?Task任务:一系列Activity的集合,这些Activity以栈的形式进行排列(后进先出)。 ? ? ? ?那在什么时候系统会新建一个Task任务呢? ? ? ? ...
    
    这里会以多个场景列子进行分析,在分析之前先了解一下基本的概念。

    ? ? ? ?Task任务:一系列Activity的集合,这些Activity以栈的形式进行排列(后进先出)。

    ? ? ? ?那在什么时候系统会新建一个Task任务呢?

    ? ? ? ?这个要以app来区分,当一个app以singleTask启动方式启动另外一个app的activity时,会新建一个Task任务,而第二个app的Activity会成为这个栈中的根。

    ? ? ? ?反之,在什么时候不会创建新任务呢?当一个app以非SingleTask方式启动另一个app时,或者在同一app内无论以什么方式启动其他Activity,都不会创建新的任务。

    ? ? ? ?上面的说法会在之后的场景中一一进行验证。

    ? ? ? ?长按HOME键后,在最近打开的任务中可以看见新创建的Task。

    ?

    ? ? ? 各个应用程序都是由launch启动的,首先来分析launch这个Activity。launch是由系统启动(由ActivityManangerService启动),当launch启动后,相当于启动一个Task,简称Task1,launch这个Activity成为Task1维护的栈中的根元素。这里,当在launch中点击app1启动图标不会在Task1中继续添加,而是会为app1新建一个Task任务,原因如下

     boolean startActivitySafely(Intent intent, Object <span id="4_nwp" style="width: auto; height: auto; float: none;"><a target=_blank id="4_nwl" style="text-decoration: none;" href="http://cpro.baidu.com/cpro/ui/uijs.php?c=news&cf=1001&ch=0&di=128&fv=17&jk=e303aa527b7f723e&k=tag&k0=tag&kdi0=0&luki=1&n=10&p=baidu&q=72008038_cpr&rb=0&rs=1&seller_id=1&sid=3e727f7b52aa03e3&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1893960&u=http%3A%2F%2Fwww%2Echengxuyuans%2Ecom%2FAndroid%2F67414%2Ehtml&urlid=0" target="_blank" mpid="4"><span style="width: auto; height: auto; color: rgb(0, 0, 255); font-size: 12px; float: none;">tag</span></a></span>) {
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            try {
                startActivity(intent);
                return true;
            } catch (ActivityNotFoundException e) {}
    }

    ? ? ? ? ?

    ? ? ? ?launch启动其他Activity都是以new task的方式启动的。这样每启动一个app,都会新建一个任务(如果任务不存在)。这样多个任务就产生了,点击HOME键的时候会启动Launch,相当于把Launch这个任务从后台移动到前台,这个时候继续点击app1,也就相当于把app1(前提app1的第一个activity在配置文件中的启动模式声明不是aingleTask)所在的任务移动到前台显示,而不会重新排布app1中所有Activity的位置。

    ?

    模拟一下两个Task的场景

    ? ? ? ? 场景1. 从Task1中的launch中打开app1,会新建Task2,Task2的根为Activity_a,启动模式为默认,从Activity_a中打开Activity_b.,然后从Activity_b中点击HOME回到Launch,再点击app1,这个时候相当于直接把Task2从后台移动到前台,Task1处于后台,Task2维护栈中的Activity位置不变,Activity_b依然处于栈顶,显示在最前端。

    ?

    ? ? ? ? ?场景2.?从Task1中的launch中打开app1,会新建Task2,Task2的根为Activity_a,启动模式为SingleTask,从Activity_a中打开Activity_b.,然后从Activity_b中点击HOME回到Launch,再点击app1,这个动作会先判断Task2的根Activity是否是SIngleTask,如果是,则执行Activity_a的onNewIntent()方法,destory掉Activity_b。如果不是直接把Task2移动到前台显示。

    ?

    (注意:场景2如果不是从launch中点击图标进入,而是从显示的最近任务中进入,则不会判断根Activity的启动模式,会直接把Task2移动到前台。Task2中的Activity排列方式不变)

    ?

    ?

    模拟一下3个Task的场景

    ? ? ? ?条件:Task1中一个Launch, Task2中app1含Activity_a,Activity_b , Task3中app2含Activity_D,Activity_E,Activity_F。

    ? ? ? ?场景1:从launch中进入Activity_a,然后进入到Activity_b,在Activity_b中以普通模式打开Activity_e(可以通过隐式启动打开),然后在Activity_E中打开Activity_F,虽然从Task2中打开了另一个app的Activity,但是由于是默认模式打开的,所以不会创建新任务Task3,Activity_E和Activity_F都属于Task2,,这时候点击Home键回到Launch,再点击app1,会把Task2移动到前台,显示出处于Task2最顶端的Activity_F,最近显示的任务中也不会出现Task3.

    ?

    ? ? ? ?场景2:从launch中进入Activity_a,然后进入到Activity_b,在Activity_b中以SingleTask模式打开Activity_e,然后在Activity_E中打开Activity_F,这个时候由于符合新建Task条件,不同app,singleTask启动,会新建Task3,然后在Activity_E中打开Activity_F,然后按home键进入到launch,发现最近任务中出现了task2,和task3,这时候点击app1发现Activity_b处于最顶端,点击app2发现该Task3已经存在,不会继续创建,显示Activity_F处于顶端,从Activity_F中点击返回键,依次回到Activity_E,最后launch,而不会回到Activity_D,因为Activity_D不在栈中。

    ?

    ?

    ?总结一下,

    ? ? ? ?1:要创建新任务,至少要满足两个条件:不同app和以SingleTask方式启动,否则在同一个app中以SingleTask方式打开Activity是不会新创建任务的。

    ? ? ? ?2.在最近任务中进行多个任务之间的相互切换时不会打乱每个任务中Activity的排列。但是在点击app图标进行多个任务切换时,系统会先判断该任务根Activity的启动模式是否为SingleTask,不是的话,不做任何操作,如果是的话,执行根Activity的onNewIntent方法,把覆盖在根Activity之上的Activity destory掉。

    ? ? ? ?3.当没有创建新任务时,新打开的Activity会一直进行当前任务中进栈,无论这些个Activity是属于哪一个App。

    ?

    ?

    ?

    转载注明地址:http://www.chengxuyuans.com/Android/67414.html

    展开全文
  • Android任务切换方法

    2009-10-28 10:13:37
    Android任务切换方法 很网友还不知道Android 1.0版的系统如何切换任务,其实Android任务管理器隐藏到了“Home”按键中了,我们可以通过“长按”Home键就会调出类似“任务管理器”的程序,使用左右导航键来切换...
    Android任务切换方法
    很多网友还不知道Android 1.0版的系统如何切换任务,其实Android任务管理器隐藏到了“Home”按键中了,我们可以通过“长按”Home键就会调出类似“任务管理器”的程序,使用左右导航键来切换任务,当然在HTC Dream左右导航键被设置成Jogball轨迹球了,操作更简单。

    提示: Android手机上提供了一个Home按键,短按是返回主屏(Home Screen)或说桌面用的,而长时间按压会调出所谓的Android任务管理器来方便多个程序间切换,如图

    [img]http://www.android123.com/images/android_task_switch.jpg[/img]
    展开全文
  • Android前后台任务切换

    2020-09-24 19:32:31
    一、判断APP是否在前台运行 public static boolean isRunningForeground(Context context) { ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);...

    一、判断APP是否在前台运行

     public static boolean isRunningForeground(Context context) {
            ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
            List<ActivityManager.RunningAppProcessInfo> appProcessInfos = activityManager.getRunningAppProcesses();
            // 枚举进程
            for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessInfos) {
                if (appProcessInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                    if (appProcessInfo.processName.equals(context.getApplicationInfo().processName)) {
                        return true;
                    }
                }
            }
            return false;
        }
    

    二、将APP切换到前台

    //如果APP是在后台运行
    if (!AllUtils.isRunningForeground(this)) {
          //获取ActivityManager
          ActivityManager mAm = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
          //获得当前运行的task
          List<ActivityManager.RunningTaskInfo> taskList = mAm.getRunningTasks(100);
          for (ActivityManager.RunningTaskInfo rti : taskList) {
              //找到当前应用的task,并启动task的栈顶activity,达到程序切换到前台
              if (rti.topActivity.getPackageName().equals(getPackageName())) {
                  mAm.moveTaskToFront(rti.id, 0);
                  return;
              }
          }
          //若没有找到运行的task,用户结束了task或被系统释放,则重新启动mainactivity
          Intent resultIntent = new Intent(MainActivity.this, MainActivity.class);
          resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
          startActivity(resultIntent);
      }
    
    

    三、需要的权限

    <!--前后台的切换-->
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
    <uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO"/>
    <uses-permission android:name="android.permission.REORDER_TASKS"/>
    
    展开全文
  • Android断点续载,下载进度通知,下载失败重试3次,下载任务切换。非完整项目代码,包含所有关键代码供参考
  • 现象描述:在Home界面打开多任务进入activity,SurfaceView上面闪现背景色,非常影响UI界面和交互,如图所示:   我在网上也搜索了一些方法,常见的就是说在XML界面里面加个宽和高都是0px的SurfaceView,我试...
  • 1三大平板系统 谁能"左右互搏"?喜欢看金庸的网友都知道,“左手画方,右手画圆”的左右互搏术是武学至高境界,只有...下面,笔者将对比iOS、Android和Windows RT三款平板系统的多任务模式,看看这三大高手在多任...
  • 曾见过有人反射手机系统的设置来实现语言,但是网上使用最多的方案还是提供一套语言的string.xml文件,手动切换app内部实现。这里我们也随大流动手搞一下。 要点 0、预览图 1、实现思路 (1)准备语言的...
  • Android多任务运行机制

    千次阅读 2012-12-04 16:10:34
    而理解Android多任务的运行,对于设计出可以良好运行的应用程序,以及与Android平台的其它部分进行无缝结合都具有重要意义。这篇文章说明了Android的多任务方式设计上的成因,它对应用程序运行产生的影响,还有你...
  • android多任务列表高斯模糊

    千次阅读 2019-10-27 08:45:49
    Android实现高斯模糊的效果网上能搜索到很多,但是关于多任务列表高斯模糊处理的文章缺比较少,这里简单记录一下我自己的实现过程,虽然有些瑕疵,但是思路最重要,记录一下。关于这个瑕疵,也会在接下来正文里有...
  • 如题,这种效果类似微信小程序显示的效果,就是打开微信跳一跳后,切换安卓多任务窗口(就是清理内存窗口),会看到如下页面 微信小程序会在其中显示两个单独的页面,点击跳一跳会进入跳一跳小程序,点击后面的微信...
  • android多任务键效果--卡片滑动,选择,侧滑删除;android多任务键效果--卡片滑动,选择,侧滑删除
  • Android App 语言切换

    千次阅读 2016-07-27 21:41:09
    转载自:...前段时间公司 App 需要实现语言切换功能,接到任务后先 Google 了下,发现搜到的方法都比较老旧,很都莫名其妙,比如什么 API
  • 开启个下载任务,并在下载管理界面刷新进度条
  • android 9支持用户切换吗?消息说是支持的呢Android中的APP如何实现帐号切换?这个并不难,你可以同时在服务器的数据库中关联一个主键下的个账户,每一个账户都有唯一的主键,用主键可以便利所有的账户,在...
  • 科普:安卓多任务机制
  • Android_App语言切换

    千次阅读 2016-05-16 09:37:33
    前段时间公司 App 需要实现语言切换功能,接到任务后先 Google 了下,发现搜到的方法都比较老旧,很都莫名其妙,比如什么 API 欺骗、反射、手动转换语系,感觉不应该这么复杂地实现(也可能是当时的环境下实现...
  • android开发是遇到一个问题,4.0-7.0版本怎样能屏蔽多任务
  • Android多任务之路

    千次阅读 2011-09-05 08:53:29
    Android多任务之路   Android真正独特的地方在于它允许多个任务同时运行。由于开发者们来自不同的平台,对这样的运行机制可能会感到惊讶。深入理解它的行为对你的应用程序设计是很重要的,因为这样可以无缝...
  • 实现这种功能就需要去监听系统的按键操作,最常用的就是监听Back键、Home键和多任务键。 但是Android系统默认是不让代码监听,所以我们就得想别的办法,这里是通过广播监听日志log! 设置窗体属性 首先,在...
  • Android线程切换的几种方法

    千次阅读 2019-05-25 19:30:36
    我们知道,线程是Android开发中必现的场景,很原生API和开源项目都有线程的内容,这里简单总结和探讨一下常见的线程切换方式。 我们先回顾一下Java线程的几个基础内容,然后再分析总结一些经典代码中对于...
  • Android进阶知识(六):Activity启动模式进阶之多任务栈与Flags 一、Activity启动模式进阶之多任务栈 在笔记Android基础知识(三):Android四大组件简介中曾经提到过,Android系统是一个多任务的操作系统,而任务...
  • AndroidStudio3.4.1+Gradle5.1.1+productFlavors声明+gradlew编译,多渠道多任务Could not find build of variant which supports`Gradle DSL method not found: 'abiFilter()'``Could not find build of variant ...
  • iOS/Android多任务浅析 多任务,伪多任务。iOS与Aandroid操作系统的争论一直不休。双方的支持者都不甘示弱,都在谈,可谁又都谈不明白。 说 到多任务,我们就不得不谈Pushmail。这是一个很经典的(伪)多任务,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,128
精华内容 19,251
关键字:

安卓多任务切换