我试图在不同的活动中显示产品详细信息,因此用户可以按住(不需要返回主屏幕多个产品打开并轻松切换顺便点击)然后使用Android任务管理器(最近的应用程序):
我想要什么:
我有什么:
我使用的代码:
的AndroidManifest.xml:
<activity
android:launchMode="singleTop"
android:taskAffinity="" // must use this or it create just one activity for the application and open the second activity in top of main activity
android:name=".Activities.ListActivity"
android:configChanges="orientation|screenSize"
android:label="Produt List"
android:theme="@style/NoActionBar"/>
<activity
android:name=".Activities.DetailsActivity"
android:configChanges="orientation|screenSize"
android:label="Produt Details"
android:theme="@style/NoActionBar"/>
我如何打开ActivityDetails:
Intent i = new Intent(this, ActivityDetails.class);
i.putExtra("productID", product.getId());
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); //must add for BOTH
i.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); //must add for both
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //for new task
i.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); //must add for lollipop
}
else{
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
}
startActivity(i);
对于Android Lollipop它正在工作,因为NEW_DOCUMENT(如果我删除它,它也停止为棒棒糖工作),但对于api&lt; api21,它不工作= /,只创建ActivityDetails的实例,并在同一个活动中打开所有产品。相反,我想要新的活动(多个副本显示不同的产品)。
尝试使用此信息:http://inthecheesefactory.com/blog/understand-android-activity-launchmode/en