【发布时间】:2016-09-19 15:16:15
【问题描述】:
我通常不会在像这样的论坛上发布问题,但今天我的挫败感蔓延到了天空。
我正在尝试实施一种解决方案,让我每隔一小时/一天(没关系)更新我的应用程序中的汇率列表。我在许多论坛上寻找我的问题的答案,但即使其他人也有同样的问题 onReceive 没有被调用,但没有一个答案对我有帮助。
我目前正在尝试运行由 AlarmManager 的 SetRepeating 方法触发的广播接收器。我的 Main Activity + Receiver + Manifest 代码如下所示:
Main方法(只是一段启动闹钟的代码):
var lvarManager = (AlarmManager)GetSystemService (Context.AlarmService);
Intent lvarCurrencyIntent = new Intent (this, typeof(CurrencyUpdateService));
var lvarPendingIntent = PendingIntent.GetBroadcast (this, 0, lvarCurrencyIntent, PendingIntentFlags.CancelCurrent);
lvarManager.SetRepeating (AlarmType.Rtc, 1000, 5000, lvarPendingIntent);
接收者:
public class CurrencyUpdateService : BroadcastReceiver
{
public override void OnReceive (Context context, Intent intent)
{
Toast.MakeText (context, "Running", ToastLength.Short).Show ();
}
}
清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="SplitTheBill.SplitTheBill" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application android:label="SplitTheBill" android:icon="@drawable/groups"></application>
<receiver android:process=":remote" android:name=".CurrencyUpdateService"/>
<provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="StockService.StockService.mono.MonoRuntimeProvider.__mono_init__" />
我想声明我是 Xamarin 的新用户,因为它非常成功地让你不要触摸 Manifest 文件,所以我只添加了以下行:
<receiver android:process=":remote" android:name=".CurrencyUpdateService"/>
我尝试在新的解决方案中运行代码,但没有成功。我尝试使用不同类型的警报类型和服务,但没有成功。
请随意提出您自己的解决方案,并嘲笑我提出明显问题;)
【问题讨论】:
标签: android xamarin xamarin.android broadcast receiver