gpt4 book ai didi

android - 取决于家长 Activity - 在 Android 上

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:02:48 26 4
gpt4 key购买 nike

在我的应用程序中收到通知后,单击它会打开 Activity B。 Activity B 有一个父 Activity A。这是 list :

<activity
android:name="com.evapp.activities.B"
android:label="@string/title_activity_B"
android:parentActivityName="com.evapp.activities.A"
android:screenOrientation="portrait" >

<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.evapp.activities.A" />
</activity>

在 Activity B 中,我启用了向上功能( Activity 操作栏图标附近的左箭头),代码如下:

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getActionBar().setDisplayHomeAsUpEnabled(true);
...

问题是,如果通过单击通知打开 Activity B( Activity A 不是带来 Activity B 的 Activity ),则当单击该图标时,应用程序将关闭。我想让它打开它的父 Activity ,A。这可能吗?还是应该使用 Activity B 中的 startActivity() 来完成?

更新 1- 我添加了这段代码:

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
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;

谢谢

最佳答案

您需要设置用于构建NotificationPendingIntent,以开始一个新的任务,并为PendingIntent 提供一个back stack 实现应用程序的正常 Up 行为。

Intent resultIntent = new Intent(this, SecondActivity.class);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// All the parents of SecondActivity will be added to task stack.
stackBuilder.addParentStack(SecondActivity.class);
// Add a SecondActivity intent to the task stack.
stackBuilder.addNextIntent(resultIntent);

// Obtain a PendingIntent for launching the task constructed by this builder.
PendingIntent pendingIntent = stackBuilder.getPendingIntent(REQUEST_CODE, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationManager manager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification.Builder(this)
.setContentTitle("My Notification")
.setContentText("Notification content")
.setSmallIcon(android.R.drawable.ic_menu_view)
.setContentIntent(pendingIntent)
.build();

manager.notify(NOTIFICATION_ID, notification);

请阅读上的Android官方文档Preserving Navigation when Starting an Activity 。它推荐上述方法。

关于android - 取决于家长 Activity - 在 Android 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com