如何在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); 
+0

感谢您的回答,我真的很感激它!我喜欢闹钟管理器的解决方案,但是我想在应用程序上随时调用行动,而不是通过固定的时间... –

1)尽量使用GCM/FCM和发送命令从服务器到所有模拟器/设备,并调用该GCM命令的方法。

2)使用闹铃管理器在特定时间设定闹钟,并在该时间调用方法。

+1

感谢您的答案,真的很感激! GCM/FCM是否也依赖于稳定的网络?而且我喜欢闹钟管理器解决方案,但是我希望在任何时候都可以在应用程序上调用该操作,而不是按固定的时间进行操作。 –