我有我的第一个活动 - [A]和我的第二个活动[B]。 我在BackGeroundTask的PreExecute中使用
从Activity [A]开始透明 - [B]活动Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
从我的PostExecute我想关闭我的透明活动[B]继续使用Activity [A],如:
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
但它给了我错误原因我没有正确的意图。
我可以这样做:
Intent intent = new Intent(getAplicationContext(), ActivityA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
此代码将创建一个新的Activity [A]。 但我需要继续使用Activity [A]来创建一个新的Activity [A]。 如何在没有错误的情况下从活动[A]中完成()活动[B],返回活动[A]并继续我的工作。
private class BackGroundTask extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute()
{
StartPreExecute();
}
@Override
protected Void doInBackground(Void... params)
{
//sending request to server and waiting response here
return null;
}
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
StartPostExecute();
}
}
protected Void doInBackground(Void... params)
{
return null;
}
private void StartPreExecute()
{
Intent intent = new Intent(SigninActivity.this, LoadingLayout.class);
startActivity(intent);
}
private void StartPostExecute()
{
Intent intent = new Intent(getAplicationContext(), SigninActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_);
startActivity(intent);
}
答案 0 :(得分:3)
如果你说Actvity B应该是透明的,我建议使用Service。服务在某种程度上类似于活动,但它们在后台运行,并且对用户不可见。服务完成任务后,稍后完成()。你不需要离开活动A.这可能是你需要的吗?