简书地址:https://www.jianshu.com/p/a8f695841008
转载请注明出处
如题,这种效果类似微信小程序显示的效果,就是打开微信跳一跳后,切换安卓多任务窗口(就是清理内存窗口),会看到如下页面
微信小程序会在其中显示两个单独的页面,点击跳一跳会进入跳一跳小程序,点击后面的微信,即会进入微信聊天主页面。
在安卓中如何实现呢?
这里有两种方法实现:
第一种:代码动态实现
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
添加上面的两个Flag即可,有些文章说关闭的时候要使用
finishAndRemoveTask();
方法,我这边没使用该方法也没发现问题,如果存在潜在问题,知道的人麻烦告知下,谢谢!!!
第二种:在AndroidManifest.xml中配置属性
参考链接:在近期任务列表显示单个APP的多个Activity
第二种方法由于需要写死配置,可能对于我来说作用不大,所以也没有测试,需要了解的人可以查看上面地址。
注意:这里来说下处理第一种方法的问题
使用上面的方法确实是实现了微信小程序多任务窗口的效果,但你会发现两个窗口在文章开头的图中的地方显示的是相同的名字,即你APP的名字,这里就跟小程序有区别了,下面来说下如何实现这种效果:
首先:经过测试,在manifest.xml中给要显示的activity设置android:lable,这种方法是可行的,但会相当于是固定了,不可变了。
然后:在manifest.xml中给该activity设置android:icon也是可以的,这样就实现了显示”跳一跳”文字和logo了。
最后:当然还是同样需要在代码中动态设置,不然固定死对于程序员来说有瑕疵。
在需要显示的activity中调用下面的代码即可显示不同文字
setTaskDescription(new ActivityManager.TaskDescription("跳一跳"));
聪明的程序员都会看下该方法的源码以及需要参数的构造方法,所以同时显示图片和文字以及需要适配就需要用下面的代码了
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
setTaskDescription(new ActivityManager.TaskDescription("跳一跳", mBitmap));
}
没错,需要5.0以上才能实现,参数的构造就需要传入bitmap才能显示图片了。
最终效果图: