繁体   English   中英

Android:恢复singleTask活动

[英]Android: resume a singleTask activity

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

  1. 将活动声明为android:launchMode="singleTask" (或singleInstance
  2. 然后,当我想恢复活动时:
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);

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

getApplicationContext().startActivity(intent);

另外,您无需使用任何特殊的启动模式( singleTasksingleInstance )即可运行。

这是Android 4.4中修复的一个Android错误。 由于这个问题来自2014年,因此我假设OP遇到了这个问题。

请参阅如何通过后台和注释线程以编程方式恢复Android Activity

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM