【问题标题】:Launch app from service (Flutter: Android)从服务启动应用程序(Flutter:Android)
【发布时间】:2020-07-13 07:43:42
【问题描述】:

我在 Flutter 中创建了插件,用于显示聊天头,就像 Facebook Messenger 一样。从聊天头我必须打开特定的屏幕。我不知道如何从我的 BroadcastReceiver 启动颤振应用程序。到目前为止,我有这个代码:

  private BroadcastReceiver createReceiver(final EventChannel.EventSink eventSink){
    return new BroadcastReceiver() {
      @Override
      public void onReceive(Context context, Intent intent) {
        Bundle b = intent.getExtras();
        if(b != null) {
          HashMap<String, Object> data = (HashMap<String, Object>) b.getSerializable(KEY_DATA);
          boolean showWhenLocked = data.get("SHOW_WHEN_LOCKED") == null ? false : (boolean) data.get("SHOW_WHEN_LOCKED");

          if(showWhenLocked) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
              mActivity.setShowWhenLocked(true);
              mActivity.setTurnScreenOn(true);
            } else {
              Window window = mActivity.getWindow();
              window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
              window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
              window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
            }
          }

          Log.d("ChatheadsPlugin", "BroadcastReceiver onReceive intent for eventSink: " + data);
          eventSink.success(data);
        }
      }
    };
  }

首先我想在这里启动应用程序主活动。如果可能的话,我想以“SHOW_WHEN_LOCKED”的可能性启动它!

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    我可以通过这种方式从 Android 启动颤振活动:

    1. 起初我在我的插件中添加了覆盖 FlutterActivity 的 MainActivity。

    2. 然后我用标志创建了新的意图来创建新的活动

      Intent 意图 = new Intent(MyService.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    3. 然后像往常一样开始活动

      开始活动(意图);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2011-04-04
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多