gpt4 book ai didi

android - 从通知导航到父 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:58 25 4
gpt4 key购买 nike

我的问题是我有两个 Activity , Activity A 和 Activity B。 Activity A 是主要 Activity , Activity B 只能通过触摸通知访问。

我需要能够触摸通知,这将打开 Activity B。用户完成 Activity B 后,他们可以按后退按钮或完成 Activity B。当 Activity B 关闭时,应显示 Activity A。目前,我关闭 Activity A(关闭整个应用程序)并收到推送通知。我选择打开 Activity B 的推送通知。当我关闭 Activity B 时,Activity A 不显示,整个应用程序关闭。我希望 Activity A 在完成 Activity B 之后就在那里。

我正在使用 Parse SDK 通知。在我的自定义 ParsePushBroadcastReceiver 中,我有以下代码

public class MyReceiver extends ParsePushBroadcastReceiver 
{
@Override
public void onPushOpen(Context context, Intent intent)
{

Intent i = new Intent(context, NotificationActivity.class);
i.putExtras(intent.getExtras());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);
}
}

我已将其列在 Android list 中。我在 list 中的通知 Activity 是

<activity
android:name=".NotificationActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait"
android:parentActivityName=".MainActivity">

<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>

</activity>

在我的通知 Activity 中,我在 onBackPressed 中有以下代码

public class NotificationActivity extends ActionBarActivity
{...
@Override
public void onBackPressed()
{
if(NavUtils.getParentActivityName(this) != null)
{
Log.d(Constants.NAVIGATION_DEBUG, "Get Parent Activity NOT NULL");

NavUtils.navigateUpFromSameTask(this);
}
else
{
Log.d(Constants.NAVIGATION_DEBUG, "Get Parent Activity NULL");

super.onBackPressed();
}
}
...}

令人惊讶的是,在日志中它声明它不是 NULL,但是如果应用程序在按下通知之前关闭,它不会导航回 Activity A。相反,应用程序关闭。我希望 Activity A 显示按下通知时应用程序是否关闭或应用程序是否打开。谢谢!

最佳答案

您可以尝试以下方法:在您的 Intent 中添加一些 bool 值,然后启动MainActivity。该额外内容将作为 NotificationActivity 启动的指示符。

public class MyReceiver extends ParsePushBroadcastReceiver 
{
@Override
public void onPushOpen(Context context, Intent intent)
{

Intent i = new Intent(context, MainActivity.class);
i.putExtras(intent.getExtras());
i.putExtra("IS_FROM_NOTIFICATION", true);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);
}
}

然后在您的 MainActivity 的 onCreate() 方法中,执行如下操作:

public class MainActivity extends ActionBarActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (getIntent().getBooleanExtra("IS_FROM_NOTIFICATION", false)) {
startActivity(MainActivity.this, NotificationActivity.class);
}
}
// other initialization code
...
...
}

那么您就不需要在 NotificationActivity 中覆盖 onBackPressed

关于android - 从通知导航到父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198997/

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