将 运行 Android 应用置于前台
Bring A Running Android App to Foreground
我正在设计一个测试工具,它需要启动另一个应用程序,然后将我正在处理的 activity 带回前台。
我一直在尝试使用接收器来解决这个问题,但到目前为止还没有成功。
任何建议将不胜感激。
如果你不想做任何特别的事情,而不仅仅是
添加一个 post 作业(有一些延迟)到您当前的处理程序并发送一个 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);
在你的内部 new activity 在 onCreate 你做了:
Intent i = getIntent();
Bundle extras = i.getExtras();
if(extras != null){
informationObject = extras.getExtra("someStringAsIdentifier");
}
有关详细信息,请参阅 Intent 文档。 :)
我正在设计一个测试工具,它需要启动另一个应用程序,然后将我正在处理的 activity 带回前台。 我一直在尝试使用接收器来解决这个问题,但到目前为止还没有成功。 任何建议将不胜感激。
如果你不想做任何特别的事情,而不仅仅是 添加一个 post 作业(有一些延迟)到您当前的处理程序并发送一个 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);
在你的内部 new activity 在 onCreate 你做了:
Intent i = getIntent();
Bundle extras = i.getExtras();
if(extras != null){
informationObject = extras.getExtra("someStringAsIdentifier");
}
有关详细信息,请参阅 Intent 文档。 :)