让我们举个例子。假设我是一个机器人,我可以射击我周围的人。但是,问题是我没有枪。我也不明白枪的工作原理。但我知道枪是一种带有扳机的物体,按下时会杀死人。因此,此代码将如下所示:-
public class Robot{
public void ShootPeopleWith( weapon IWeapon ){
weapon.PressTrigger()
}
}
interface IWeapon{
PressTrigger()
}
您会看到,机器人希望任何想要它射人的人首先为他提供武器。现在,他不知道是什么武器。无论你提供给我什么,它都应该有一个触发器,因为我只知道按下触发器并且我知道它符合我的目的。如果你给我提供没有触发器的东西,我就无法工作。
现在,出现了一种无人机,它可以指示机器人射击人。它还为它提供了一把枪。
public class Drone{
List<Robots> allRobotsInArea = someList
public void DelegateARobot(){
robot = select a robot from allRobotsInArea
IWeapon weapon = new MachineGun(); //procuring a machine gun
robot.ShootPeopleWith(weapon);
}
}
您可以在此处看到 IWeapon 是机器人和无人机之间的协议。它说无论你给我什么,都必须有一个触发器。所以,机枪必须有扳机。让我们实现一些武器:-
public class MachineGun : IWeapon{
public void PressTrigger(){
Fire40RoundsPerSecond();
}
...
}
public class Sniper() : IWeapon{
public void PressTrigger(){
SayQuackQauck();
}
}
无人机现在可以轻松地将狙击手和机关枪等任何武器传递给机器人。
public class Pumpkin{
public void FreakPeopleOut(){
GlowInTheDark();
}
}
无人机无法通过南瓜,即使它可以用作robot.ShootPeopleWith(new Pumpkin()); 的武器,因为它没有触发器并且违反了机器人期望的合同。
在您的情况下,Android 操作系统可能是上述故事中的机器人,它需要任何类型的 INativePages,因此当它使用您的 NativePages 对象时,它将尝试调用 StartActivityInAndroid()。它不知道活动或如何启动它,因此您必须在方法中指定它。在 Windows 中按 Alt + Enter 将自动为您生成此方法。然后,您必须编写有关如何在 Android 中启动 Activity 的逻辑。