Java 查找Android应用程序是如何在应用程序类中启动的
非常简单的设置:Java 查找Android应用程序是如何在应用程序类中启动的,java,android,Java,Android,非常简单的设置: 使用onCreate()方法扩展应用程序类 一项活动 一个由AlarmManager 应用程序类将在以下两种情况下实例化: 直接启动活动时(应用程序已停止) 当IntentService由AlarmManager的挂起意图启动时(以防应用程序死机) 现在问题: 在应用程序类中,如何获得上面两种情况中的哪一种启动应用程序?是!在IntentService中向您的意图添加额外内容,并在MainActivity中检查它们 将一个int作为您的id放入新的Intent Intent
- 使用
方法扩展应用程序类李>onCreate()
- 一项
活动
- 一个由
AlarmManager
在应用程序类中,如何获得上面两种情况中的哪一种启动应用程序?是!在
IntentService
中向您的意图添加额外内容,并在MainActivity中检查它们
将一个int
作为您的id放入新的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();
然后在新的活动中获取id
:
Bundle b = getIntent().getExtras();
int value = -1; // or other values
if(b != null)
value = b.getInt("key");
好了,您无法从自定义
应用程序的子类的onCreate()
中判断这两种情况中的哪一种导致了流程启动Application
没有要调用的heyWhatStartedMe()
类方法,onCreate()
也没有传递任何指示进程启动原因的消息
我不太清楚你为什么需要确定差异<在主应用程序线程上调用Application
的code>onCreate()
,因此无论是哪个组件触发了进程创建,您都不希望在那里执行任何缓慢的操作。如果您想做的工作很快,您可以一直做,或者将该逻辑移到活动或IntentService
中 好了,您无法从自定义应用程序的子类的onCreate()
中判断这两个案例中的哪一个导致了您的流程启动。呃,如此快速和@commonware本身,我非常高兴:)也很难过,因为这意味着没有解决方案:(我不太清楚您为什么需要确定差异。onCreate()应用程序的
在主应用程序线程上被调用,因此无论是哪个组件触发了进程创建,您都不希望在主应用程序线程上执行任何缓慢的操作。如果要执行的工作很快,您可以一直执行,或者将该逻辑移动到活动
或IntentService
。是的,我将不得不改变一个逻辑,只需要一次初始化,并且只有在不是由特定服务启动时,我才认为这是可能的。@Commonware和顺便问一下,为什么不将其添加为答案?“这是不可能的”答案的类型也是我所理解的答案…谢谢你的回答,但看起来你完全错过了这个问题。意图服务与活动无关。这都是关于应用程序类的。你不是从意图服务开始你的活动吗?不,服务做它自己的事情,与活动无关