当应用关闭并收到通知时,用户会点击该应用并打开特定用户的个人资料。 它具有父活动(UsersActivity),但在这种情况下,单击工具栏中的后退按钮时,应用程序将关闭。
当用户从UsersActivity转到个人资料活动时,后退按钮正在按预期工作。
我希望它能够进行父活动,甚至应用程序也会以通知开始。 我怎么能这样做?
这是我的清单:
<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());
}
}
}
答案 0 :(得分:0)
您的Activity中的onBackPressed()
方法可能正在执行当前finish();
的{{1}},并且后台没有其他活动,因此会关闭该应用。
要解决此问题,您始终可以通过UserActivity的意图返回MainActivity
如果用户打开通知并转到他们的个人资料,您可以在Activity
中使用此
ProfileActivity.class
同样在您的代码中,确保您在关闭活动时没有在活动中执行@Override
public void onBackPressed() {
startActivity(new Intent(this,MainActivity.class));
}
,因为它会从当前堆栈中消失,然后再次进入您的应用程序,就像我说的那样,您将关闭应用程序,因为背景中没有活动。
答案 1 :(得分:0)
{{1}}