如何把后台任务下面蜂窝状前?如何把后台任务下面蜂窝状前?(How to bring a backgr

2019-06-14 15:53发布

在我的应用程序的根活动,我有一个定制的标签栏,含有三个标签使用ViewFlipper实现三个屏幕之间切换。

我现在想要做的是给每个这些屏幕的它自己的活动堆栈,使我的所有活动中可用的标签栏,按下分页时,不同的堆栈之间切换。

工作就像蜂巢)在ActivityMaganger类可用的风情万种,在那里我有bringTaskToFront(。

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

  • 重新启动特定任务的顶部活动,希望该任务将转移到前
  • 得到蜂窝班莫名其妙

因此,任何想法?

非常感谢,

斯文

Answer 1:

在版本蜂窝状及以上者,可以使用MoveTaskToFront像这样

//Bring Task to front with Android >= Honeycomb
if (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);
           }
    }
}

确保您的项目与Android V.11或高达sothat这行不存在编译打破编译:

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

对于较旧的Android版本,你可以使用下面的任务移动到前面:

Intent intent = new Intent(this, YourClass.class);//The class you want to show
startActivity(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()它会导致你的任务不是结束了对用户可见。 而是使用以下命令:这将模拟一个home键按下,这将有效地隐藏你的应用程序,并显示在主屏幕

@Override
public 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);
}

和你去那里,我希望这对你的作品,并帮助一些人解决这个问题。



Answer 2:

这对我的作品在Android版本的上方和下方蜂窝。 该键是意图标志

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

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);


文章来源: How to bring a background task to the front below honeycomb?
标签: android task