【发布时间】:2016-03-12 04:29:54
【问题描述】:
当第三方应用程序中显示 Activity 时,我的应用程序会侦听由第三方应用程序触发的 Intent。 Intent 在我的应用程序中的 BroadcastReceiver 中收到。我想从BroadcastReceiver 开始一个活动,它将显示为Dialog,而不是现有的activity(触发了Intent)。
@Override
public void onReceive(final Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, ">>>>>>>>> Action:" + action);
if ("clover.intent.action.V1_ORDER_BUILD_START".equals(action)) {
Intent i = new Intent(context.getApplicationContext(), ActiveOrderActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
Intent clover.intent.action.V1_ORDER_BUILD_START 被我的应用监听的另一个应用触发。当这个 Intent 被触发时,一个 Activity 已经打开(见下图中的背景 Activity)。
现在我想在我的应用中显示一个 Activity 作为对话框覆盖已显示的 Activity,就像下图中的“将客户添加到订单”中一样。
如上代码所示,我是从BroadcastReceiver启动一个Activity,但是启动时来到前台,之前的Activity没有显示出来。
请参阅下面的示例,了解我想要实现的目标,
【问题讨论】:
-
你尝试了什么?
-
看下面的帖子可能有帮助:How to create transparent activity in android?
标签: android android-layout android-intent android-activity broadcastreceiver