我已经开始编写Xamarin Android应用程序,该应用程序会在警报响起时更改活动。每个人都在网上到处说要使用FLAG_ACTIVITY_NEW_TASK或类似的标记来调用新活动。由于某种原因,我的Intent没有定义任何这些标志。
[BroadcastReceiver(Enabled = true)]
public class AlarmReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Toast.MakeText(context, "THIS IS MY ALARM", ToastLength.Long).Show();
Intent i = new Intent();
i.SetClassName("AlarmReceiver", "AlarmActivated");
i.SetFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //error
context.StartActivity(i);
}
}
为什么没有定义此标志或其他类似标志?谢谢。
答案 0 :(得分:1)
Xamarin“ C#规范化”了Android / Java方法/属性,有时将枚举/标志移动到自己的“子”枚举中,FLAG_ACTIVITY{_XXX}
变成了ActivityFlags
枚举。
所以Intent.FLAG_ACTIVITY_NEW_TASK
变成ActivityFlags.NewTask
答案 1 :(得分:0)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
在我的案例中, addFlags 被代替了 setFlags