2017-04-17 22 views
2

目前我正在嘗試爲研究目的設置測試環境。我想要實現的是以下情況: 我想運行3個Android應用程序和1個iOS應用程序,在我的Macbook上使用模擬器。它們是具有類似用戶界面的應用程序,但後面有不同的代碼。我想同時在所有模擬器上啓動相同的操作,例如按下按鈕或調用方法。如何在3個android模擬器和1個iOS模擬器上同時觸發相同的動作?

我已經嘗試過在其上運行模擬器的應用程序,讓他們聽聽在火力地堡實時數據庫中的變化值,所以每次我在火力地堡改值的時候,所有的應用程序會調用該方法。這種設置的問題是應用程序之間的延遲,因爲它們依賴穩定的互聯網連接。

是否有任何其他解決方案同時觸發所有仿真器上的操作?我真的很感激幫助!

感謝

編輯根據答覆和意見: - 我想選擇每當我想在其上運行的應用程序的操作。這意味着例如警報管理器是不太可取的解決方案。 - 我想避免外部網絡電話。

回答

0

您可以使用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

1)儘量使用GCM/FCM和發送命令從服務器到所有模擬器/設備,並調用該GCM命令的方法。

2)使用鬧鈴管理器在特定時間設定鬧鐘,並在該時間調用方法。

+1

感謝您的答案,真的很感激! GCM/FCM是否也依賴於穩定的網絡?而且我喜歡鬧鐘管理器解決方案,但是我希望在任何時候都可以在應用程序上調用該操作,而不是按固定的時間進行操作。 –

相關問題