android 中启动活动的层次结构
Hierarchy of launching activities in android
我对 android 如何启动其启动器活动感到困惑。
如果我像这样在 manifest
文件中声明启动器 activity
<activity android:name=".Activities.Home">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我有一个 Application
class,它根据
这样的检查调用 activity
if(ParseUser.getCurrentUser() == null){
Intent intent = new Intent(context,Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else{
Intent intent = new Intent(context,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
哪个优先? manifest
或 Application
。事件流程是什么? 例如Application->Manifest (or) Manifest->Application (or) Application overrides Manifest ?
如果我在 Android 中收到 notification
,我的应用程序 class 将被调用。这使得应用程序 class 中的活动开始,如上所示。有没有办法检测谁调用了应用程序 class ? 我的意思是用户启动它,还是从进来的notification
开始?
如果有办法解决这个问题。 如何防止在收到通知时调用应用程序 class 中的 activity?
提前致谢。
只需从应用程序传递布尔附加值并在应用程序 class 和用户启动的调用中进行区分。
Intent intent = new Intent(context,Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("APP_CALL",True);
startActivity(intent);
现在在您的主页中 activity 只需检查 APP_CALL 如果它是从应用程序 class 调用的,则 bool 值将为 true,否则为 false。
你也可以在 splash 中写 activity 来检查登录。
我对 android 如何启动其启动器活动感到困惑。
如果我像这样在
manifest
文件中声明启动器 activity<activity android:name=".Activities.Home"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
我有一个 Application
class,它根据
activity
if(ParseUser.getCurrentUser() == null){
Intent intent = new Intent(context,Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else{
Intent intent = new Intent(context,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
哪个优先? manifest
或 Application
。事件流程是什么? 例如Application->Manifest (or) Manifest->Application (or) Application overrides Manifest ?
如果我在 Android 中收到
notification
,我的应用程序 class 将被调用。这使得应用程序 class 中的活动开始,如上所示。有没有办法检测谁调用了应用程序 class ? 我的意思是用户启动它,还是从进来的notification
开始?如果有办法解决这个问题。 如何防止在收到通知时调用应用程序 class 中的 activity?
提前致谢。
只需从应用程序传递布尔附加值并在应用程序 class 和用户启动的调用中进行区分。
Intent intent = new Intent(context,Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("APP_CALL",True);
startActivity(intent);
现在在您的主页中 activity 只需检查 APP_CALL 如果它是从应用程序 class 调用的,则 bool 值将为 true,否则为 false。
你也可以在 splash 中写 activity 来检查登录。