3

我试图让我的 Android 应用程序在从启动器运行时运行一些代码,然后再启动到活动中。也就是说,我希望我的应用程序以 a 开头,Sub Main而不是先进入 Activity。

本质上,在伪中,我想做这样的事情:

void main() {
    doSomeInitializationStuff();

    startActivity(myFirstActivity);
}

根据这个问题,看起来Android字面上没有这个概念。所以我正在考虑创建一个不可见的活动作为我的切入点,但无法弄清楚如何使活动不可见。我已经尝试了这两种方法,这似乎是我搜索中唯一出现的方法,但它们似乎并没有真正做任何事情......

this.setVisible(false); this.setTheme(android.R.style.Theme_Translucent_NoTitleBar);

4

3 回答 3

1

您可以创建一个启动活动并在那里开始所有初始化,而不是创建一个不可见的活动。

我还没有尝试过,但您可以扩展应用程序类并在应用程序类中使用 onCreate 来初始化您需要的内容。

这是应用程序类的 onCreate 的 JavaDoc

/**
 * Called when the application is starting, before any other application
 * objects have been created.  Implementations should be as quick as
 * possible (for example using lazy initialization of state) since the time
 * spent in this function directly impacts the performance of starting the
 * first activity, service, or receiver in a process.
 * If you override this method, be sure to call super.onCreate().
 */
public void onCreate() {
}

您需要通过使用 Android 清单文件标签中的 android:name 参数让应用知道您正在使用自定义应用程序类。

于 2011-03-01T07:45:44.037 回答
0

在大多数 Android 应用程序中都有 SplashScreen 的概念,人们可以使用该屏幕来完成此类行为,而这个 SplashScreen 的真正主题是在后台处理此类任务,同时为应用程序本身和与之相关的各种事情做广告

于 2011-03-01T06:52:21.670 回答
0

一种选择是没有不可见的 Activity,而是 SplashScreen。这样做的好处是用户在应用程序启动时已经看到正在发生的事情,因此他不会觉得它没有工作。例如,请参见此类;您可以将 doSomeInitStuff() 放在第 54 行附近

否则我认为,您不能在onCreate()第一个活动中加载布局,然后从那里转发。

于 2011-03-01T06:54:37.497 回答