java - 启动 Activity 不适用于 Android 模拟器

标签 java android android-activity activitygroup

我使用我的自定义实现 tabhost。按如下方式创建新 Activity :

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));
    }
  }
  //
  //...
  //
}

但是在调用销毁 Activity 之后:

 getLocalActivityManager().destroyActivity(className, true);

我正在尝试调用以启动 Activity ,但从这段代码中得到的窗口等于 null:

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

在具有固件 2.1 (Hero) 和 2.2 (Desire) 的设备上工作一切正常,但在具有 android 平台的模拟器上无法工作;(

现在我正在研究android platform 2.2的源代码,以了解为什么window等于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);

}

最佳答案

开始 Activity 的调用是否正确?

我看到了 startActivity只接受 Intent 的一个参数..

请检查。此外,嵌入 try/catch 以获取异常(如果有)..

关于java - 启动 Activity 不适用于 Android 模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4643676/

相关文章:

java - 将整数传递给线程

java - 我们如何在 ConcurrentUpdateSolrServer 上设置压缩?

android - 在创建应用程序子类以与多个 Activity 共享数据时遇到问题

android - 将 Intent 从 BroadcastReceiver 类发送到当前正在运行的 Activity

java - Java 8 更高版本中 `url.openStream` 行为的变化

java - 数组的元素作为对另一个数组的引用?

android - 找不到 EGLConfig

android - Android混合原始声音。源是Java数组,不是文件或资源

java - 我在实现 Android 聊天气泡时遇到错误

android-activity - 当点击 Firebase 通知时显示特定的 Activity