2011-01-10 4 views
2

Я использую свою собственную реализацию 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); 

} 

ответ

1

ли право вызова для запуска деятельности?

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

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

+0

Начало деятельности право Исключение не такое, которое не отображается –

+0

См. URL: http://developer.android.com/reference/android/app /LocalActivityManager.html#startActivity(java.lang.String,%20android.content.Intent) –

Смежные вопросы