Android显示没有新Intent的新类

时间:2014-07-20 10:47:08

标签: android class android-intent

我有一个AsyncTask连接到数据库并返回一个JSONArray。数据显示在ListView中。现在,如果我单击一个ListItem,我将使用JSONObject

中的数据启动一个新的Intent
Intent it = new Intent(DisplaySearchResults.this, Display.class);
try
{
   it.putExtra("ID", jArray.getJSONObject(position).getString("ID").toString());
   it.putExtra("TITLE", jArray.getJSONObject(position).getString("TITLE").toString());
   it.putExtra("STRING", jArray.getJSONObject(position).getDouble("STRING"));
   it.putExtra("SOME TEXT", jArray.getJSONObject(position).getString("SOME TEXT").toString())
} catch (JSONException e)
{
   e.printStackTrace();
}
startActivity(it);

现在可以用

之类的东西启动显示类
Display d = new Display(jsonArray);

1 个答案:

答案 0 :(得分:0)

不,你不能那样做。

为什么?

DisplayActivity,在Android中,Activity生命周期由Android框架管理。这意味着Android框架决定何时创建任何Activity的新实例。

合同是:

  • 创建活动的新实例时:Android框架将调用onCreate方法,为您提供初始化新活动的机会。
  • 您不得自行实例化新活动(即通过致电new
  • 您可以要求Android框架使用Intent创建任何Activity的新实例,Android框架将异步为您执行此操作。

为完整起见,请允许我添加以下内容:

  • 在某些情况下,例如“屏幕旋转”,Android框架可能会决定销毁并重新创建一个Activity。为此:框架将重用最初用于创建活动的Intent。

  • 取决于Intent标志,Activity启动模式以及目标Activity的实例是否已经存在:框架可能决定不创建目标Activity的新实例,而是将它带回到前面目标活动的已存在实例