【问题标题】:Bring A Running Android App to Foreground将正在运行的 Android 应用程序带到前台
【发布时间】:2015-03-06 17:04:17
【问题描述】:

我正在设计一个测试工具,它需要启动另一个应用程序,然后将我正在处理的活动带回前台。 我一直在尝试使用接收器解决这个问题,但到目前为止还没有运气。 任何建议将不胜感激。

【问题讨论】:

  • 所以您想从“测试应用程序”启动一个应用程序,然后让该“新应用程序”重新打开“测试应用程序”?或者,一旦你接触到“新应用”,你是否想做点什么?
  • 我想在到达那个“新应用程序”后继续测试..

标签: android android-activity broadcastreceiver


【解决方案1】:

如果您不想做任何特别的事情,那么 向您当前的处理程序添加一个发布作业(有一些延迟),并发送一个 Intent 以启动您的 Activity,并将标志带到前台。

说明示例:

    /*
    * Your code to launch the 3rd party app
     */
    Handler handler=new Handler();
    handler.postDelayed(new Runnable(){
        public void run() {
            Intent openMe = new Intent(getApplicationContext(), MyActivity.class);
            openMe.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); //experiment with the flags
            startActivity(openMe);
        }}, 3000);

正如文档所说,也许你应该使用FLAG_ACTIVITY_REORDER_TO_FRONT

您还可以将信息存储在 Intent 中,以便稍后检索并重建您的屏幕。

例子:

intent.putExtra("someStringAsIdentifier", someInformationObject);

在 onCreate 中你的新活动是你做的:

Intent i = getIntent();
Bundle extras = i.getExtras();
if(extras != null){
    informationObject = extras.getExtra("someStringAsIdentifier");
}

有关更多信息,请参阅 Intent 的文档。 :)

【讨论】:

  • 感谢您的回答 JacksOnF1re。但是,仍然存在一个小问题。每当发布作业开始时,它都会将我带回主屏幕活动,并且我会松开我之前使用的屏幕。我几乎使用了所有标志,但它显示错误并坚持使用 FLAG_ACTIVITY_NEW_TASK 这对我的情况没有帮助。
  • 好的,在这种情况下,将屏幕所需的所有信息保存在您放入 Intent 的包中,并在创建时将其取回。
  • 再次非常感谢。干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
相关资源
最近更新 更多