首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Xamarin android:单击推送通知打开应用程序时,异步等待呼叫不起作用

Xamarin是一种跨平台移动应用开发框架,可以使用C#语言开发Android和iOS应用程序。在Xamarin Android中,当用户单击推送通知以打开应用程序时,异步等待呼叫可能会失效的原因有多种可能性。

首先,确保在推送通知的处理代码中正确地设置了异步等待呼叫。异步等待呼叫通常使用async和await关键字来实现。例如,在处理推送通知的方法中,可以使用以下代码来等待异步操作完成:

代码语言:txt
复制
public async void HandleNotificationClick()
{
    // 异步等待呼叫
    await SomeAsyncMethod();
    // 在异步操作完成后执行的代码
    // 打开应用程序的相关逻辑
}

其次,确保异步操作方法SomeAsyncMethod()正确地实现并且没有出现异常。异步操作方法通常会返回一个Task对象,可以使用Task.Run()方法来创建一个异步任务。例如:

代码语言:txt
复制
public async Task SomeAsyncMethod()
{
    await Task.Run(() =>
    {
        // 异步操作的代码
    });
}

另外,还需要确保推送通知的处理代码正确地注册了点击通知的事件处理程序。可以使用Xamarin.Android中的NotificationCompat.Builder类来创建和发送推送通知,并为其设置点击事件处理程序。例如:

代码语言:txt
复制
// 创建通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
    .SetContentTitle("标题")
    .SetContentText("内容")
    .SetSmallIcon(Resource.Drawable.icon);

// 设置点击事件处理程序
Intent intent = new Intent(this, typeof(MainActivity));
PendingIntent pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
builder.SetContentIntent(pendingIntent);

// 发送通知
NotificationManager notificationManager = (NotificationManager)GetSystemService(Context.NotificationService);
notificationManager.Notify(0, builder.Build());

最后,如果以上步骤都正确无误,但异步等待呼叫仍然不起作用,可能是由于其他因素导致的。可以尝试使用调试工具来跟踪代码执行过程,查看是否有异常抛出或其他错误发生。

总结起来,当使用Xamarin Android处理推送通知时,确保正确设置异步等待呼叫、正确实现异步操作方法、正确注册点击通知的事件处理程序,并使用调试工具进行排查,以解决异步等待呼叫不起作用的问题。

关于Xamarin和移动应用开发的更多信息,您可以参考腾讯云的移动应用开发服务:腾讯移动应用开发

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Open Source C# (Mono Compatible) Library for Sending Push Notifications To iOS (iPhoneiPad APNS), A

下面是一个C#库(兼容Mono),允许你推送通知到iOS应用程序Android,Windows Phone和一些黑莓应用程序。...在iOS和Android开发中给App应用软件推送消息通知是很常用的方式。...今天给大家iOS和Android开发者推荐一个可以给实现给包括iOS、Android和Windows Phone及Blackberry多种操作系统的App应用推送消息通知的开源C#库 - PushSharp...这是一些在GitHub的Readme文档中列出的功能列表: 支持许多平台发送推送通知: 苹果(的APN -  IOS - 的iPhone,iPad) Android的(GCM/C2DM - Phone/...Tablets) Windows Phone 7 /7.5/8 黑莓(非完全功能)  - 为每个平台建设流畅的通知API 通知通道的自适应(更多的Workers/Connections需求的增加) 尽可能的情况下使用异步代码

89950

Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端

get; set; } } } 2、共享库创建通讯录服务接口:IContactsService.cs 包括: 一个通讯录获取请求接口:RetrieveContactsAsync 一个读取一条通讯结果通知事件...终端具体的通讯录获取服务需要继承此接口 /// public interface IContactsService { /// /// 读取一条数据通知...taskCompletionSource.TrySetCanceled(); }); _isLoading = true; var task = LoadContactsAsync(); // 等待两个任务中的第一个任务完成...taskCompletionSource.TrySetCanceled(); }); _isLoading = true; var task = LoadContactsAsync(); // 等待两个任务中的第一个任务完成...,但由于本人没有iOS测试环境,所以未验证,有条件的朋友可以测试下iOS的通讯录读取功能,如果代码不起作用,可参考本文参考的文章检查iOS代码。

4K20
  • C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

    (默认为无) Xamarin.Android中的链接器采用静态分析来确定Xamarin.Android应用程序使用或引用了哪些程序集,类型和类型成员。...一般,在小型Xamarin.Android应用程序上使用ProGuard通常可以减少大约24%的大小 如果,在具有多个库依赖性的较大应用程序上使用ProGuard通常可以实现更大的尺寸缩小。...生成过程是首先使用Xamarin.Android链接器来优化应用程序中的托管(C#)代码,然后使用ProGuard(如果启用)在Java字节码级别优化APK。...当启用ProGuard的检查,Xamarin.Android上运行所产生的APK ProGuard的工具。ProGuard配置文件在构建由ProGuard生成和使用。...Xamarin.Android还支持自定义ProguardConfiguration构建操作。您可以将自定义ProGuard配置文件添加到项目中,右键单击它,并将其作为构建操作选择.

    2.9K80

    Visual Studio 2017 15.8 版发行说明

    打开或保存文件,代码分析可在后台中运行,并且结果显示在错误列表中,在编辑器中显示为绿色波形曲线(图 9)。 ?...容器化项目按所需方式运行后,如果准备好将项目推送到 Azure 容器注册表或 DockerHub,则可以右键单击该项目并选择“生成 Docker 映像”以本地生成映像。...创建新的 Xamarin.Forms 项目,默认代码共享选项现在为 .NET Standard。 共享项目选项仍然可用。 添加了 Android 增量生成的改进。...(图 15)Google Android Emulator 和 HoloLens 模拟器 Xamarin.Android 设计器 显著改善了 Xamarin.Android 的设计器体验。...Xamarin.Forms 预览器 当使用 Xamarin.Forms 3.1.0.583944 版或更高版本Xamarin.Forms 预览器现提供工具箱支持。

    8.2K10

    TRTC Android端开发接入学习之实现视频通话(五)

    7.接收方:当接收方处于已登录状态,会收到名为 onInvited() 的事件通知,回调中 callType 的参数是发起方填写的通话类型,您可以通过此参数启动相应的界面,如果希望接收方在不处于登录状态也能收到通话请求...此处为实例代码:我们在组件登录成功后即打开摄像头并呼叫用户“aaa” TXCloudVideoView localView = new TXCloudVideoView(mContext...11.接收端:通过名为 onInvited() 事件通知能够接收到此呼叫请求。...通话发起方在多个接收均未应答 hangup() ,每个接收方均会收到 onCallingCancel() 事件通知。 14.如果需要离开当前多人通话可以调用 hangup() 方法。...IM SDK 支持离线推送,但是 Android 端各个手机厂商均有各自的离线推送服务,因此接入复杂度要高于 iOS 平台,您需要进行相应的设置才能达到可用标准。

    2.6K20

    笔记 | Xamarin

    11data访问限制如何解决 JarBinding 极光推送 参考: Xamarin学习系列之极光消息推送(示例代码)_136.la 极光推送 - Android SDK 集成指南 - 极光文档 Xamarin...使用极光推送 详细教程 - 尚码园 绑定 .JAR - Xamarin | Microsoft Docs xamarin使用极光推送JPush (安卓)_初级打字员的博客-CSDN博客 Xamarin.Forms...相应的,写文件,会将所有的0x0A换成0x0D0x0A。 所以,若使用文本方式打开二进制文件,就很容易出现文件读不完整,或內容不对的错误。...例如,你可能想就要保留的类显式通知 ProGuard。...默认对 Xamarin.Android 应用程序的调试版本启用 JDWP。 虽然 JDWP 在开发过程中很重要,但它会对已发布的应用程序造成安全问题。

    23.9K20

    国内 Mono 相关文章汇总

    深度合作 Xamarin体验:使用C#开发iOS/Android应用 [Xamarin] 透過Native Code呼叫 JavaScript function (转帖) 山寨Unity3D?...搜狐畅游的免费开源游戏引擎Genesis-3D Mono for Android—初体验之“电话拨号器” 分布式唯一ID生成服务 使用PushSharp给iOS应用推送消息 使用MonoTouch.Dialog...简化iOS界面开发 VS2012中Mono For Android 打包编译APK文件详细图文教程 使用PushSharp给iOS应用推送消息 Android(1)—Mono For Android 环境搭建及破解...通知详解 Xamarin.Android广播接收器与绑定服务 Xamarin.Android之ActionBar与菜单 绿色版的Linux.NET——“Jws.Mono”(续) 如玫瑰一般的PHP...-用ZXing实现二维码扫描以及连续扫描 Xamarin.Android-捕获未处理异常(全局异常) 为Xamarin更好的开发而改写的库 使用LogMaster4Net实现应用程序日志的集中管理 Centos

    11.2K60

    APP消息推送方案调研

    介绍消息类型推送服务支持通知栏消息和透传消息通知栏消息通知栏消息由系统通道直接下发,消息将在终端的通知中心下拉列表呈现,不需要应用进程驻留后台,用户点击通知栏消息后会触发相应的动作,如打开应用、打开网页等...透传消息的到达率受Android系统和应用是否驻留在后台影响,推送服务不保证透传消息的高到达率。透传消息的常用场景:好友邀请、VoIP呼叫、语音播报等。...低功耗推送服务采用了统一消息中心(Notification Center,以下简称NC)的能力,华为终端设备收到通知栏消息由NC统一展示消息,当用户点击通知栏消息才会拉起目标应用进程,NC的能力减少了启动应用进程的频率从而降低终端设备的功耗...当你接收到通知打开应用,才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。...优劣势Apps 挂后台一直是 Android 引以为豪的特性,挂后台等待推送就成为技术选择;但是,没人真正为用户的电池负责。Apps 的开发者不会站在系统层面考虑的。

    21210

    C# Xamarin移动开发项目实战篇

    本次分享课程最终目标: 希望学完本次分享课程后能够快速通过Xamarin For Android打造一个后台管理系统App应用程序,从而将学习成果转化为工作成果。...UI组件的更新一定要在UI线程里 android为了线程安全,不允许在UI线程外的子线程操作UI,这个结论不仅仅是说android,这个概念同样适用于其他的客户端系统,它的好处提高客户端UI的用户体验和执行...AddOrUpdateValue(stringkey,Tvalue); 设置的生命周期与应用程序一样,当应用程序被卸载清空。...3.7、Android漂亮的主菜单界面(GridView) GridView与ListView的用法基本一致,不同的只是布局。当我们打开手机,应用会以宫格显示,那就是GridView。 ...3.8、Android漂亮的列表展示数据(ListView) GridView与ListView的用法基本一致,不同的只是布局。当我们打开手机,应用会以列表显示,那就是GridView。

    9.9K50

    VS2022 MAUI Hello World——Windows平台及Android平台效果

    本文长度为2426字,预计阅读7分钟 前言 微软的Visual Studio 2022在11月8号已发布,除了.Net6,改为64位的应用程序,将不再局限于主进程 devenv.exe 的 4Gb 内存限制...Xamarin.Forms下一个主要版本。...VS2022中.Net 6将Xamarin SDK统一到.NET中了。 .NET MAUI在.NET 6中涵括了Android,iOS,macOS和Windows。...安装还有将MAUI的相关组件都打上勾 01 创建MAUI新项目 打开VS2022后,创建新项目,在搜索栏中输入MAUI 选择.Net MAUI App(Preview),取的项目名称为MauiHelloWorld...平台效果要比Winform好很多,不过在Android下运行,一是启动界面那个.Net的页面加载时间感觉有点长,然后虚拟的返回按钮不起作用,看来需要写事件捕获。

    5.3K40

    .NET MAUI:跨平台应用开发的全方位指南

    NET MAUI 是微软继 Xamarin.Forms 之后推出的新一代跨平台应用开发框架,目标是通过一套代码库支持 iOS、Android、Windows 和 macOS 四大平台。...MVVM 模式MVVM 模式是大多数开发者较为熟悉的模式,尤其是在 WPF 和 Xamarin.Forms 开发中。它将应用程序逻辑分成三个部分:Model:负责应用的核心数据和业务逻辑。...打开 Visual Studio 并选择创建一个新的 MAUI 项目:在“创建新项目”对话框中,选择“MAUI App”模板。选择项目名称和存放位置。...单击“创建”,Visual Studio 将为您生成一个包含 iOS、Android、Windows 和 macOS 支持的 MAUI 项目。2....懒加载和异步加载:使用 Task 和 async/await 实现懒加载,避免主线程阻塞。图片优化:使用适当分辨率的图片,避免加载超大图片影响性能。

    30910

    C# Xamarin移动开发基础进修篇

    Xamarin 它的目标是用C#开发iOS、Android和Windows Phone原生应用程序Xamarin.Android 为 .NET 开发人员提供了完整的 Android SDK。...2)、Xamarin工作原理 Android应用程序会被编译为IL代码,启动再进行JIT编译(动态编译),发布程序的时候会包含一个mono runtime。...微软云端与企业部门执行副总裁Scot Guthrie在博客中指出,Xamarin将联合Visual Studio为客户提供丰富的移动开发产品,开发者将能使用C#开发移动软件并向所有主要移动平台推送全原生态的移动软件...6.3、如何快速上手通过Xamarin 创建移动Android App应用程序。 阿笨将带来xamarin for android小白快速的上手一个Hello World的应用程序示例。...只有是非负数,Activity退出,这个码会返回到onActivityResult()。

    6K20

    Android可穿戴设备世界之旅

    创建新项目 打开Android Studio,然后选择“新建项目”选项。为您的应用程序命名,我们在这里使用“Hello Android Wear”作为应用程序名称以及公司域名。...单击“完成”按钮,然后等待一段时间以构建 Wear 应用的 Gradle 项目信息。 图 4:设置布局和活动名称 当所有过程成功完成后,您将找到如下所示的工作室窗口。...图 5:AVD 配置窗口 当您的佩戴虚拟设备准备就绪,它将出现在 AVD 管理器窗口中。单击红色标记的启动按钮以启动模拟器。...要检查您的设备是否与磨损模拟器连接,您可以尝试多种方法,在这里我们正在检查手表通知。选择它,你会发现一个有几个选项的窗口。从那里选择“来电”选项,您将直接收到磨损模拟器的呼叫通知。...图 4:从设备向 wear 模拟器发送呼叫通知。 兴趣点 如本文前面所述,将整个可穿戴平台涵盖到一篇文章中是一个漫长的过程。但是我们已经看到了在这个平台上开发应用程序的最重要因素。

    11410
    领券