考虑3个活动:
(A)登录活动(主启动器)
(B)主要活动
(C)具体活动
用户登录(A)后,他们将访问(B),并且只能从(B)中访问(C)。
现在,每次打开应用程序时,它将首先启动(A),然后启动(B)。
我想发出一个推送通知,当单击该通知时,它可以访问(C),但必须首先启动(B)。
我正在使用Xamarin.Android + Appcenter推送通知
当我的应用程序处于前台和后台时,我都可以收到通知。
我的问题是我的应用程序在后台运行时,单击状态栏中收到的通知会导致它重新启动应用程序,从(A)开始。
我需要跳过(A)的帮助,因为用户已经登录,打开(B)然后打开(C)
有什么想法吗?希望这对你们来说不太混乱。
我也尝试将launchMode = singleInstance设置为(A)和(B),但它仍会重新启动应用程序
答案 0 :(得分:1)
您无法动态更改启动器活动,但是可以尝试以下几种解决方法:
创建一个透明的活动并将其作为启动器活动:
<activity
android:name=".ActivityLauncher"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
然后选择onCreate()
if ( logged() ) {
intent = new Intent(this,ActivityB.class);
} else {
intent = new Intent(this,ActivityA.class);
}
startActivity(intent);
finish();
答案 1 :(得分:-1)
您可以实现此目的,发送一个活动名称或一些值来选择您的活动。根据您发送的值,您可以启动活动,也可以在您返回通知活动时在后台添加活动。
我一直很喜欢这样,希望这对您有用。