【问题标题】:Android: How to display the main activity?Android:如何显示主要活动?
【发布时间】:2011-03-19 06:36:15
【问题描述】:

我试图在另一个类中显示我的主要活动,但问题是我当时不知道类名(我正在编写的代码在 Android 库中,主要活动是在具体的应用程序中)。

如何在运行时获取主要活动类或以其他方式创建启动主要活动的意图?

我试过这个:

new Intent(Intent.ACTION_MAIN);

但是什么也没发生。

【问题讨论】:

  • 你试过这个 startActivity(new Intent(Yourcurrentclass.this,YourActivityname.class));
  • 是的,但我现在不知道它是哪个类,每个应用程序都有不同的类。我在图书馆项目中有这种共享行为。

标签: android android-activity android-intent android-library


【解决方案1】:

这看起来很合适:PackageManager.getLaunchIntentForPackage()。请注意,它是 API 级别 3。

【讨论】:

    【解决方案2】:

    在第一次使用库时,为什么在初始化库时不传递主活动的名称?

    【讨论】:

    • 这有点难,因为我需要知道广播接收器中的类。 Android框架实例化了它,所以我真的不知道它是什么时候初始化的。我试图设置接收器的静态成员,但它也不起作用。还有其他想法吗?
    【解决方案3】:

    在您所指的主要活动的清单中包含以下意图:

     <intent-filter>
        <action android:name="com.android.myproject.THIS_IS_MY_ACTION" />
        <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
    

    您可以使用以下方法调用此类:

    startActivity(new Intent("com.android.myproject.THIS_IS_MY_ACTION"));
    

    【讨论】:

      【解决方案4】:

      你能不能尝试实现一些接口(或者抽象类)来描述你的主类。

      然后在你在库中编写的类中,实例化一个接口对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 2020-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多