首页 文章

Android:恢复singleTask活动

提问于
浏览
1

我有一个端口上有UDP套接字的活动 . 如果按Home键,活动将在后台运行,则调用OnPause()和OnStop()方法 . 现在我想收到一些UDP数据包后恢复活动 . 阅读我理解的其他帖子我必须:

  • 将活动声明为 android:launchMode="singleTask" (或 singleInstance

  • 然后,当我想恢复活动时:

Intent intent = new Intent(this.getApplicationContext(), myActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

这个解决方案不适用于我 . 对 startActivity(intent) 的调用不显示我在前景上的活动,并且未调用 onResume() .

以下标志执行此任务但我不想清除任务并重新启动新任务 .

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

1 回答

  • 0

    为了将您自己的任务带到前台,您需要在非活动上下文上调用 startActivity() ,例如:

    getApplicationContext().startActivity(intent);
    

    此外,您无需使用任何特殊启动模式( singleTasksingleInstance )即可使用此功能 .

    这是在Android 4.4中修复的Android错误 . 由于这个问题来自2014年,我将假设OP正在看到这个问题 .

    请参阅How to resume Android Activity programmatically from background和评论主题 .

相关问题