【问题标题】:Is there a way from one Phone/Tablet module start Activity to another module activity within the same app without creating a new app in Android?有没有办法从一个电话/平板电脑模块启动活动到同一个应用程序中的另一个模块活动,而无需在 Android 中创建新应用程序?
【发布时间】:2020-06-09 10:33:00
【问题描述】:
  val intent = Intent(Intent.ACTION_MAIN)
        .addCategory(Intent.CATEGORY_HOME)
        .setClassName( "com.example.AnotherPhoneTabletModule","com.example.AnotherPhoneTabletModule.MainActivity")
        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        .addFlags(Intent.FLAG_FROM_BACKGROUND)
        .setComponent(ComponentName("com.example.AnotherPhoneTabletModule", "com.example.AnotherPhoneTabletModule.MainActivity"))

    applicationContext.startActivity(intent)[1]

有两个手机/平板电脑模块,想在另一个模块中启动活动。但是,由于设置标志或类别的原因,其他模块正在创建不同的应用程序。是否可以在同一个应用程序中从另一个手机/平板电脑模块启动另一个活动而不使用 android 库模块。

Two different apps

【问题讨论】:

  • 您应该删除标志 addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) .addFlags(Intent.FLAG_FROM_BACKGROUND) 并从活动上下文开始
  • 它返回“从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)”这个不幸的是,错误没有起作用@Công Hải
  • No 不要使用应用程序上下文来启动。你试过按活动开始吗?

标签: android kotlin android-intent android-module


【解决方案1】:
val intent = Intent(Intent.ACTION_MAIN)
            .addCategory(Intent.CATEGORY_HOME).setClassName("com.example.AnotherPhoneTabletModule","com.example.AnotherPhoneTabletModule.MainActivity")
            .setComponent(ComponentName("com.example.AnotherPhoneTabletModule", "com.example.AnotherPhoneTabletModule.MainActivity"))

        startActivity(intent)

这段代码对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多