我有一个Android应用程序的活动问题,为了简单起见我让它有三个活动:主要的M,答案A的那个和我开始C的那个。
所以M使用startActivityOnResult启动A,然后A将结果发送给M并从那里开始S。
但由于某种原因,S的布局没有更新,直到我从那里调用的主方法完成(当该方法完成时,活动反正回到M,所以基本上我只看到布局如果我做活动S不给出结果并站在那里什么也不做。)
以下是一些代码:
在M开始S:
Intent intent = new Intent(MainActivity.this, getCamFind.class);
intent.putExtra("path", mCurrentPhotoPath);
startActivityForResult(intent, CAMFIND_REQUEST_CODE);
在S:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_getcamfind);
receivedIntent = getIntent();
Log.d(TAG, "Received string : " + receivedIntent.getStringExtra("path"));
}
public void onStart(){
super.onStart();
try {
postCamResult(receivedIntent.getStringExtra("path"));
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
所以这里我讨论的主要方法是postCamResult,它基本上使用改造连接到服务器。在这个方法的最后,我通常会把几行发送回结果意图。问题是布局是否因某种原因等待此方法完成?因此,如果我没有发送结果意图,那么在完成所有与服务器相关的操作之后,它会最终打印我的布局,但是你知道,我希望我的布局在我打开活动后立即出现!
提前谢谢!