如何在3个android模拟器和1个iOS模拟器上同时触发相同的动作?
目前我正在尝试为研究目的设置测试环境。我想要实现的是以下情况: 我想运行3个Android应用程序和1个iOS应用程序,在我的Macbook上使用模拟器。它们是具有类似用户界面的应用程序,但后面有不同的代码。我想同时在所有模拟器上启动相同的操作,例如按下按钮或调用方法。如何在3个android模拟器和1个iOS模拟器上同时触发相同的动作?
我已经尝试过在其上运行模拟器的应用程序,让他们听听在火力地堡实时数据库中的变化值,所以每次我在火力地堡改值的时候,所有的应用程序会调用该方法。这种设置的问题是应用程序之间的延迟,因为它们依赖稳定的互联网连接。
是否有任何其他解决方案同时触发所有仿真器上的操作?我真的很感激帮助!
感谢
编辑根据答复和意见: - 我想选择每当我想在其上运行的应用程序的操作。这意味着例如警报管理器是不太可取的解决方案。 - 我想避免外部网络电话。
您可以使用AlarmManager在android中实现此功能。
将在18:32运行(将时间设置为未来3个的Android模拟器运行代码,确保所有设备都具有相同的时间)
Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());//set the current time and date for this calendar
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, 18);
cal.set(Calendar.MINUTE, 32);
cal.set(Calendar.SECOND, cur_cal.get(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));
Intent intent = new Intent(ProfileList.this, IntentBroadcastedReceiver.class);
PendingIntent pintent = PendingIntent.getService(ProfileList.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pintent);
1)尽量使用GCM/FCM和发送命令从服务器到所有模拟器/设备,并调用该GCM命令的方法。
2)使用闹铃管理器在特定时间设定闹钟,并在该时间调用方法。
感谢您的答案,真的很感激! GCM/FCM是否也依赖于稳定的网络?而且我喜欢闹钟管理器解决方案,但是我希望在任何时候都可以在应用程序上调用该操作,而不是按固定的时间进行操作。 –
感谢您的回答,我真的很感激它!我喜欢闹钟管理器的解决方案,但是我想在应用程序上随时调用行动,而不是通过固定的时间... –