当前位置: 首页 > 知识库问答 >
问题:

活动作为来自 BroadcastReceiver 的对话框,而不是另一个活动

贲俊才
2023-03-14

当第三方应用程序中显示< code >活动时,我的应用程序会侦听该应用程序触发的< code >意图。我的应用程序中的< code>BroadcastReceiver会接收到< code>Intent。我想从< code>BroadcastReceiver启动一个活动,它将在现有的< code>activity上显示为一个< code >对话框(触发了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<code>clover.int.action。V1_ORDER_BUILD_START由我的应用程序侦听的其他应用程序触发。当触发此Intent时,一个Activity已经打开(请参见下图中的后台活动)。

现在,我想在我的应用程序中将活动显示为已显示的活动上的对话框,就像下图中的“将客户添加到订单”一样。

如上面的代码所示,我正在从BroadcastReceiver启动一个“活动”,但当它启动时,它会出现在前台,而之前的“活动”不会显示。

下面是我想要实现的一个例子,

共有1个答案

宦砚
2023-03-14

也许你应该创造

public class MyDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Get the layout inflater
    LayoutInflater inflaterViewObject = LayoutInflater.from(getActivity());
    // Inflate and set the layout for the dialog
    // Pass null as the parent view because its going in the dialog layout
    final View DialogView = inflaterViewObject.inflate(R.layout.dialog, null);
    final AlertDialog Dialog = new AlertDialog.Builder(getActivity()).create();
    Dialog.setView(DialogView);

    DialogView.findViewById(R.id.dialog_YES).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //your YES logic
            Dialog.dismiss();
        }
    });

    DialogView.findViewById(R.id.dialog_NO).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        //Your NO LOGIC
            Dialog.dismiss();
        }
    });

    // return dialog object (later on .show());
    return Dialog;
}

稍后,你在你选择的地方(在BrodcastReciever)写作

MyDialog dialogObject = new MyDialog();
dialogObject.show(getFragmentManager(), "tag name for the dialog fragment.");
 类似资料:
  • 我有一个具有对话框样式的活动,因此它可以在上一个活动的顶部显示。 我有一个通知,该通知打开此活动,如下所示:

  • 我目前正在处理一个Android项目,当用户在使用对话框主题的活动上按后退按钮时,我遇到了问题。 基本上,我有一个活动,让我们称之为我的活动,第二个活动使用@android: style/Theme.Holo.Dialog称为MyDialog。 当MyDialog活动显示在屏幕上时,活动对话框在对话中按预期启动,但当用户按下返回按钮时,对话框活动按预期关闭,但启动活动即MyActive似乎结束了,

  • 我是android studio的新手,我正在尝试实现一个对话框片段,以便在单击按钮或单击工具栏操作添加按钮时弹出。它将数据从对话框发送到一个片段或一个活动(试图了解它是如何为这两个对象工作的)。我的dialog类有一个接口,当我在片段中实现它时,它工作得非常好,但是活动有点不同。我使用接口将数据传递给活动,然后使用Bundle将数据从活动传输到片段。我相信错误发生在onAttach中,因为我已经

  • 我试图通过按cardview开始另一项活动,cardview有一个朋友查找id。但是当我写回家时。java它给了我setOnClickListener中的问题。在homeActivity中,它告诉我无法解析“homeActivity”中的方法“homeActivity”。因为

  • 在SO上也有类似的问题,但没有一个对我有效。 我想在Activity1中获取被点击的图像并在Activity2中显示它。 我获取被点击图像的图像id如下所示: 并通过意图传递给另一个活动。 任何帮助都很感激。

  • 我有两个 列表 详细 列表显示项目列表,单击列表中的项目时显示详细信息。在中,我们观察从数据库获取提要的情况,一旦我们这样做了,我们就更新了用户界面。 列表页 现在我们有了一个页面,该页面更新了提要(项目),并且已经完成,但是更改没有反映在中。 详细信息页面 提要视图模型 为了简单起见,已经抽象了一些代码。如果需要,我可以添加它们来跟踪问题