Запустить активность не работает для эмулятора Android - PullRequest
2 голосов
/ 10 января 2011

Я использую свой пользовательский ярлык реализации.Создайте новое действие следующим образом:

public class TabsActivityGroup extends ActivityGroup {
  //
  //...
  //
  private void startGroupActivity(String activityID, Intent activityIntent) {
    final LocalActivityManager localActivityManager = getLocalActivityManager();
    Window window = localActivityManager.startActivity(activityID, activityIntent);
    // after call destroy activity window equals null on android 1.6 (emulator). Why?
    // on android 2.2 window not equal null
    if (window != null) {
     View view = window.getDecorView();
     tabsContentFrameLayout.addView(view, new ViewGroup.LayoutParams(
     ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
    }
  }
  //
  //...
  //
}

Но после действия уничтожения вызова:

 getLocalActivityManager().destroyActivity(className, true);

Я пытаюсь сделать вызов, чтобы начать действие, но из этого кода получаем окно, равное нулю:

Window window = localActivityManager.startActivity(activityID, activityIntent);

На устройстве с прошивкой 2.1 (Hero) и 2.2 (Desire) все работает хорошо, но на эмуляторе с платформой android не работает; (

Сейчас изучаю исходный кодПлатформа Android 2.2, чтобы понять, почему окно равно нулю.

Буду рад любой помощи.

Временное решение:

public static boolean isEmulator(Context context) {                                                                     
 TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);     
 final String deviceId = telephonyManager.getDeviceId();                                                         
 if (deviceId == null) return true;                                                                              
 if (CommonHelper.isNotNull(deviceId) && deviceId.equals(NULL_IMEI)) {return true;} else { return false;}
}

if (!isEmulator(this)) {
     getLocalActivityManager().destroyActivity(className, true);

}

1 Ответ

1 голос
/ 10 января 2011

Правильно ли вызов для начала активности?

Я вижу, что startActivity принимает только один параметр намерения.

Пожалуйста, проверьте.Кроме того, вставьте в try / catch, чтобы получить исключение, если таковое имеется.

...