了解如何在Application类中启动Android App

时间:2016-07-24 12:00:24

标签: java android

设置非常简单:

  • 使用onCreate()方法的扩展应用程序类。
  • 一个Activity
  • 一个IntentService计划按AlarmManager
  • 不时重复运行

应用程序类将在以下两种情况下实例化:

  1. 直接启动活动(应用程序已停止)
  2. 当AlarmManager的待定意图启动IntentService时(如果应用程序已经死亡)
  3. 现在提问: 在Application类中如何获得上述2个案例中的哪一个开始app?

2 个答案:

答案 0 :(得分:1)

AFAIK,您无法从自定义onCreate()子类的Application内知道这两个案例中的哪一个导致您的流程启动。 Application没有heyWhatStartedMe()种方法可以调用,onCreate()也没有传递任何指示进程启动原因的内容。

我不太确定为什么你需要确定差异。 onCreate()的{​​{1}}在主应用程序线程上被调用,因此无论哪个组件触发创建进程,您都不希望在那里做任何事情。如果您想要做的工作很快,您可能只是一直这样做,或者将该逻辑移到ApplicationActivity

答案 1 :(得分:0)

是的!在IntentService内为您的意图添加额外内容,并在MainActivity中查看它们。

将您的身份int放入新的Intent

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle b = new Bundle();
b.putInt("key", 1); //Your id
intent.putExtras(b); //Put your id to your next Intent
startActivity(intent);
finish();

然后抓住新Activity中的ID:

Bundle b = getIntent().getExtras();
int value = -1; // or other values
if(b != null)
    value = b.getInt("key");