gpt4 book ai didi

java - 当 Activity 以通知开始时,设置后退按钮总是转到父 Activity

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

当应用程序关闭并收到通知时,用户单击它并打开特定用户的个人资料。它有一个父 Activity (UsersActivity),但在这种情况下,当单击工具栏中的后退按钮时,应用程序将关闭。

当用户从 UsersActivity 转到配置文件 Activity 时,后退按钮按预期工作。

即使应用程序以通知启动,我也希望它进入父级 Activity 。我该怎么做?

这是我的 list :

<activity
android:name=".UsersActivity"
android:parentActivityName=".MainActivity"
>

</activity>
<activity
android:name=".ProfileActivity"
android:parentActivityName=".UsersActivity"
>

这是 ProfileActivity:

public class ProfileActivity extends AppCompatActivity {

private Toolbar mToolbar;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);


mToolbar = findViewById(R.id.profile_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_gold_back);
getSupportActionBar().setLogo(R.drawable.ic_logo_v);
getSupportActionBar().setTitle(R.string.app_name);
getSupportActionBar().setSubtitle(R.string.profile_toolbar_title);

通知类:

public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {


@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);

String notification_title = remoteMessage.getData().get("title");
String notification_message = remoteMessage.getData().get("body");

String click_action = remoteMessage.getData().get("click_action");

String from_user_id = remoteMessage.getData().get("from_user_id");



NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(notification_title)
.setContentText(notification_message);


Intent resultIntent = new Intent(click_action);
resultIntent.putExtra("user_id", from_user_id);


PendingIntent resultPendingIntent =
PendingIntent.getActivity(
this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);

mBuilder.setContentIntent(resultPendingIntent);




int mNotificationId = (int) System.currentTimeMillis();

NotificationManager mNotifyMgr =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);

if (mNotifyMgr != null) {
mNotifyMgr.notify(mNotificationId, mBuilder.build());
}


}
}

最佳答案

也许您的 Activity 中的 onBackPressed() 方法正在执行当前 Activityfinish(); 并且没有其他 Activity在后台,所以它会关闭应用程序。

要解决此问题,您始终可以使用 UserActivity 的 Intent 返回到 MainActivity

如果用户打开通知并转到他们的个人资料,您可以在 ProfileActivity.class 中实现一个方法

@Override
public void onBackPressed() {

startActivity(new Intent(this,MainActivity.class));

}

同样在你的代码中,确保你在关闭它时没有在你的 Activity 中执行 finish();,因为它将从当前堆栈中消失,然后如果你再次进入您的应用程序,就像我说的,您将关闭该应用程序,因为后台没有 Activity 。

关于java - 当 Activity 以通知开始时,设置后退按钮总是转到父 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49204758/

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