很多时候,在 Android 应用程序中,用户单击按钮/视图并启动新活动,新活动会在用户之前查看的内容之前弹出并加载数据。
如果用户在下一个活动开始之前单击按钮时开始加载数据(从网络或磁盘或两者),从用户的角度来看会有什么不同。然后将该数据返回到广播接收器中的新活动。
这与在活动的 oncreate 中启动流程进行比较。假设这些网络和 i/o 进程只需要几毫秒,如果方法是在新活动的 onCreate 中启动,或者在旧活动 onClick 中启动,对用户会有什么影响。
第一种方式,启动 I/O 并在 I/O 完成后更改视图
//first activity
public void onClick(View v){
startActivity(new Intent(this, NewActivity.class);
}
//NewActivity.class
onCreate(Bundle mBundle){
super.onCreate(mBundle);
setContentView(R.layout.mView);
mObject = networkCall(); //after network call, the view objects in this layout will reflect data from the network call
}
第二种方式,在第一个活动中启动 I/O
//first activity
public void onClick(View v){
IntentService networkCall = new IntentService();
//start network call
startActivity(new Intent(this, NewActivity.class);
}
//second activity on create just sets the view and also broadcast receiver
我的猜测是,在活动弹出的瞬间,来自意图服务的数据可能变得可用。但与此同时,通过意图传递数据可能需要同样长的时间,从而使收益变得微不足道
洞察力赞赏