【问题标题】:How to launch a certain activity of an Android app如何启动 Android 应用程序的某个活动
【发布时间】:2013-07-01 03:01:31
【问题描述】:

我想从我的应用启动两个特定的活动 A_Activity 和 B_Activity 从应用 Aapp 和 Bapp 我插入了两个按钮,在我写的两个 OnClickListener 中

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("com.Acompany.Aapp.A_Activity");
ctx.startActivity(intent);

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("com.Bcompany.Bapp.B_Activity");
ctx.startActivity(intent); 

此外,我在 AndroidManifest.xml 中添加了以下几行

<activity
    android:name="com.Acompany.Aapp.A_Activity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="com.Acompany.Aapp.A_Activity" />
    </intent-filter>
</activity>
<activity
    android:name="com.Bcompany.Bapp.B_Activity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="com.Bcompany.Bapp.B_Activity" />
    </intent-filter>
</activity>

但是我的应用程序崩溃了,在 logcat 中我读到“没有找到处理 Intent 的活动” 我的错在哪里?

编辑:更准确地说,这两个活动不在我自己的应用程序中

【问题讨论】:

  • 如果你只使用会发生什么: Intent myIntent = new Intent(); FirstActivity.this.SecondActivity(myIntent);
  • 这一行非常令人困惑:I would like to launch, from my app, two specific activities A_Activity and B_Activity from *apps Aapp and Bapp* 您要启动的两个活动与您要启动的活动在同一个应用程序中?
  • 我有 3 个应用程序...带有两个按钮的 MyApp 以及带有我想要启动的活动的 A_app 和 B_app

标签: android android-intent android-activity android-manifest


【解决方案1】:

更准确地说,这两个活动不在我自己的应用程序中

您应该首先调查目标应用的清单文件,通过导出或提供可公开访问的意图过滤器来检查这些活动是否可供其他人使用。看起来你可能根本不被允许做你试图做的事情。

【讨论】:

  • 我怎么知道这些应用程序是否允许我这样做?
  • 您需要检查这些活动是否被导出或提供不受限制的意图过滤器
【解决方案2】:

试试这样。对于您的家庭活动(首次启动活动),请在清单 file.xml 中执行此操作

<activity
    android:name="com.Acompany.LaunchHomeActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="com.Acompany.LaunchHomeActivity" />
    </intent-filter>
</activity>
<activity android:name="com.Acompany.Aapp.A_Activity">

</activity>
<activity android:name="com.Bcompany.Bapp.B_Activity">

</activity>

不要在所有活动中包含&lt;intent-filter&gt;

【讨论】:

    【解决方案3】:
    Intent intent = new Intent(myFirstClass.this, MySecondClassA.class);
    startActivity(intent);
    

    B类

    Intent intent = new Intent(myFirstClass.this, MySecondClassB.class);
    startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      相关资源
      最近更新 更多