推送通知以打开特定活动
Posted
技术标签:
【中文标题】推送通知以打开特定活动【英文标题】:Push notification to open specific activity 【发布时间】:2018-10-31 23:25:38 【问题描述】:考虑 3 项活动: (A) 登录活动(主启动器) (B) 主要活动 (C) 比活
用户登录 (A) 后,他们将访问 (B),并且只能从 (B) 访问 (C)。
现在每次打开应用程序时,它都会先启动 (A),然后启动 (B)。
我想制作一个推送通知,点击后它可以访问 (C) 但必须先启动 (B)。
我正在使用 Xamarin.android + Appcenter 推送通知
当我的应用处于前台和后台时,我都可以收到通知。
我的问题是当我的应用在后台时,点击状态栏中收到的通知会导致它重新启动应用,从 (A) 开始。
我需要跳过 (A) 的帮助,因为用户已经登录,打开 (B) 然后打开 (C)
有什么想法吗?希望这不会让你们太困惑。
我也尝试将 launchMode=singleInstance 设置为 (A) 和 (B),但它仍会重新启动应用程序
【问题讨论】:
【参考方案1】:您无法动态更改启动器活动,但您可以尝试一些解决方法:
创建一个透明的Activity,并使其成为Launcher Activity:
<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();
【讨论】:
Xamarin 对于一些事情和初始化Intent
的语法几乎没有什么不同。最好在答案中提及注释,以免 OP 感到困惑。
感谢您的回答。我试试看【参考方案2】:
您可以发送一个活动名称或一些值来选择您的活动。根据您发送的值,您可以启动活动并在您返回通知活动时将活动添加到后台堆栈中,后台堆栈中的页面将出现。
我一直喜欢这样,希望这对你有用。
【讨论】:
以上是关于推送通知以打开特定活动的主要内容,如果未能解决你的问题,请参考以下文章