【问题标题】: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),但它仍会重新启动应用程序

【问题讨论】:

    标签: android xamarin push-notification visual-studio-app-center


    【解决方案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】:

    您可以发送一个活动名称或一些值来选择您的活动。根据您发送的值,您可以启动活动并在您返回通知活动时将活动添加到后台堆栈中,后台堆栈中的页面将出现。

    我一直喜欢这样,希望这对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多