Я использую свою собственную реализацию tabhost. Создать новую деятельность следующим образом:Начать деятельность не работает для эмулятора android
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 2.2, чтобы понять, почему окно равно null.
Буду рад любой помощи.
Временное решение:
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);
}
Начало деятельности право Исключение не такое, которое не отображается –
См. URL: http://developer.android.com/reference/android/app /LocalActivityManager.html#startActivity(java.lang.String,%20android.content.Intent) –