我有一個用下面的代碼後退按鈕和向上按鈕當父活動從廣播接收器
Intent appIntent = new Intent(context, A.class);
appIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_FROM_BACKGROUND);
context.startActivity(appIntent);
的一個活動開始OK開始活動的廣播接收器開始不起作用,然後裏面我按下一個按鈕,使用此代碼
TaskStackBuilder tsb = TaskStackBuilder.create(this);
tsb.addParentStack(this);
Intent intent=new Intent(this, B.class);
tsb.addNextIntent(intent);
tsb.startActivities();
活動B開始精細啓動另一個活動B,但我按後退按鈕或向上按鈕活性的不露面
這裏是清單FIEL兩個活動的定義
<activity android:name=".A" android:launchMode="singleTop"
android:label="@string/app_name" >
</activity>
<activity android:name=".B"
android:label="@string/app_name" android:parentActivityName="myPackage.A">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="myPackage.A" />
</activity>
,並在活動BI有以下代碼
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.simplelistlayout);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public void onBackPressed() {
moveTaskToBack(true);
B.this.finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
// Respond to the action bar's Up/Home button
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
} else {
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
return super.onOptionsItemSelected(item);
};
我試圖調試,我認爲這個問題是,當我打電話活動A從廣播接收器中,FLAG_ACTIVITY_NEW_TASK導致意圖同時具有動作(android.intent.action.MAIN)和類別(android.intent.category.LAUNCHER),並且活動A不是我的啓動器活動,所以當活動B接收到後面動作或向上按鈕被按下I se e打算有正確的活動A,但與發射器活動的動作和類別有關,我該如何解決這個問題?
你爲什麼要在這個複雜的方式開始從''A' B'?你爲什麼不用'Intent intent = new Intent(this,B.class)來啓動'B'; startActivity(intent);'?這也可能導致你的問題。 –