我试图让我的Android应用程序在从启动器运行时运行一些代码,然后启动到一个活动。也就是说我希望我的应用程序以Sub Main
开头而不是先进入活动。
基本上,在伪,我想做这样的事情:
void main() {
doSomeInitializationStuff();
startActivity(myFirstActivity);
}
根据this question,看起来Android从字面上看并没有这个概念。所以我在创建一个不可见的Activity作为我的切入点,但无法弄清楚如何使一个活动不可见。我尝试了这两种方法,这些方法似乎是我搜索中出现的唯一方法,但它们似乎并没有真正做任何事情......
this.setVisible(false);
this.setTheme(android.R.style.Theme_Translucent_NoTitleBar);
答案 0 :(得分: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参数让应用知道您正在使用自定义应用程序类。
答案 1 :(得分:0)
在大多数Android应用程序中都有SplashScreen的概念可以使用该屏幕来完成这样的行为,真正的主题是这个SplashScreen是在后台处理这样的任务同时为应用程序本身和与之相关的各种事情做广告
答案 2 :(得分:0)
一种选择是没有不可见的Activity,而是SplashScreen。这样做的好处是用户已经看到应用程序启动时发生的事情,因此他没有得到它不起作用的印象。例如,参见例如this class;你会把doSomeInitStuff()放在第54行附近
否则我想,您可以不在第一个活动的onCreate()
中加载布局,然后从那里转发。