我现在想要做的是给每个屏幕它自己的活动堆栈,制作
标签栏可用于我的所有活动,并在按下标签时在不同堆栈之间切换.
就像蜂窝上的魅力一样,我在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 – 如何将后台任务带到蜂窝下面的前面?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)