android – 如何将后台任务带到蜂窝下面的前面?

android – 如何将后台任务带到蜂窝下面的前面?,第1张

概述在我的应用程序根活动中,我有一个自定义标签栏,包含三个选项卡,可在使用ViewFlipper实现的三个屏幕之间切换. 我现在想要做的是给每个屏幕它自己的活动堆栈,制作 标签栏可用于我的所有活动,并在按下标签时在不同堆栈之间切换. 就像蜂窝上的魅力一样,我在ActivityMaganger类中提供了bringTaskToFront(). 我尝试了很多解决方案,例如: >重新启动特定任务的顶级活动,希 在我的应用程序根活动中,我有一个自定义标签栏,包含三个选项卡,可在使用VIEwFlipper实现的三个屏幕之间切换.

我现在想要做的是给每个屏幕它自己的活动堆栈,制作
标签栏可用于我的所有活动,并在按下标签时在不同堆栈之间切换.

就像蜂窝上的魅力一样,我在ActivityMaganger类中提供了bringTaskToFront().

我尝试了很多解决方案,例如:

>重新启动特定任务的顶级活动,希望任务将移至前面
>以某种方式获得蜂窝课程

那么,任何想法?

非常感谢,

斯文

解决方法 在honey和up版本中,您可以像这样使用MoveTaskToFront

//Bring Task to front with AndroID >= Honeycombif (Build.VERSION.SDK_INT >= 11) {    ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);    List<RunningTaskInfo> rt = am.getRunningTasks(Integer.MAX_VALUE);    for (int i = 0; i < rt.size(); i++)     {           // bring to front           if (rt.get(i).baseActivity.toShortString().indexOf("yourproject") > -1) {                                   am.moveTaskToFront(rt.get(i).ID,ActivityManager.MOVE_TASK_WITH_HOME);           }    }}

确保您的Project Compiles with AndroID v.11或更高版本,以确保此行不会因编译而中断:

am.moveTaskToFront(rt.get(i).ID,ActivityManager.MOVE_TASK_WITH_HOME);

对于较旧的AndroID版本,您可以使用以下方法将任务移至前端:

Intent intent = new Intent(this,YourClass.class);//The class you want to showstartActivity(intent);

在androID清单中添加以下内容

<!--The versions with which to compile--><uses-sdk androID:minSdkVersion="7" androID:targetSdkVersion="11"/><!--The Activity you wish to bring forward--><activity androID:name="YourClass" androID:taskAffinity="" androID:launchMode="singleTask" /><!--User Permissions--><uses-permission androID:name="androID.permission.GET_TASKS" /><uses-permission androID:name="androID.permission.REORDER_TASKS" />

最后,确保当你通过覆盖onBackpressed()来推回任务时,不要使用moveTaskToBack(),这将导致你的任务最终不会对用户可见.而是使用以下内容:这将模拟主页按钮按下,这将有效地隐藏您的应用程序并显示主屏幕

@OverrIDepublic voID onBackpressed() {    Utils.showToast(this,"Your application is running in the background");    /*Simulate Home button Press*/    Intent startMain = new Intent(Intent.ACTION_MAIN);    startMain.addcategory(Intent.category_HOME);    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    startActivity(startMain);}

你去了,我希望这对你有用,并帮助一些人解决这个问题.

总结

以上是内存溢出为你收集整理的android – 如何将后台任务带到蜂窝下面的前面?全部内容,希望文章能够帮你解决android – 如何将后台任务带到蜂窝下面的前面?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1124570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存