我有一个AsyncTask连接到数据库并返回一个JSONArray。数据显示在ListView中。现在,如果我单击一个ListItem,我将使用JSONObject
中的数据启动一个新的IntentIntent 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);
答案 0 :(得分:0)
不,你不能那样做。
为什么?
Display
是Activity
,在Android中,Activity生命周期由Android框架管理。这意味着Android框架决定何时创建任何Activity的新实例。
合同是:
onCreate
方法,为您提供初始化新活动的机会。new
)为完整起见,请允许我添加以下内容:
在某些情况下,例如“屏幕旋转”,Android框架可能会决定销毁并重新创建一个Activity。为此:框架将重用最初用于创建活动的Intent。
取决于Intent标志,Activity启动模式以及目标Activity的实例是否已经存在:框架可能决定不创建目标Activity的新实例,而是将它带回到前面目标活动的已存在实例。