“意图”不包含“ FLAG_ACTIVITY_NEW_TASK”的定义

时间:2018-10-04 04:08:24

标签: c# android xamarin xamarin.android

我已经开始编写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);
    }
}

为什么没有定义此标志或其他类似标志?谢谢。

2 个答案:

答案 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