java - 当我关闭应用程序...并打开通知...我单击 TestActicty 上的“返回”时,它会关闭应用程序并且不会返回主 Activity

标签 java android

当我关闭应用程序并打开通知时,它会打开 TestActicty ..但是当我单击返回时,它会关闭应用程序...不会返回到主 Activity ..并且我需要它返回到 MainActivity

Intent in=new Intent(this,TestActicity.class);
        PendingIntent p=PendingIntent.getActivity(this,1,in,PendingIntent.FLAG_UPDATE_CURRENT);
        Intent BroadCast=new Intent(this, TestActicity.class);
        BroadCast.putExtra("Link","Hello");
        PendingIntent BpendingIntent=PendingIntent.getBroadcast(this,0,BroadCast,PendingIntent.FLAG_CANCEL_CURRENT);
        Notification notfy=new NotificationCompat.Builder(getApplicationContext(), App.CHANNEL_1_ID)
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setContentTitle("Test")
                .setContentText("Walaaaaaa")
                .setContentIntent(p)
                .setAutoCancel(true)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setOnlyAlertOnce(true)
                .addAction(R.mipmap.ic_launcher,"toast",BpendingIntent)
                .addAction(R.mipmap.ic_launcher,"Replay",p)
                .build();

        notificationManager.notify(5,notfy);

最佳答案

  • 创建一个扩展 AppCompatActivity 的 BaseActivity.java 类
  • 这应该由 TestActivity 和 MainActivity 进行扩展
  • 在 BaseActivity 中实现 onBackPressed() 并获取此 Activity 是否是堆栈中的最后一个 Activity,如果是,则它应该是 MainActivity,否则启动 MainActivity,如下代码, 因此,要确定某个 Activity 是否是最后一个 Activity :
  • 在 list 中请求 android.permission.GET_TASKS 权限。
  • 使用以下代码:

    ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
    List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
    if(taskList.get(0).numActivities == 1 &&
            !taskList.get(0).topActivity.getClassName().equals(MainActivity.getClass().getName()))
    {
        Log.i(TAG, "Need to launch MainActivity");
        Intent mainActivityIntent = new Intent(this, MainActivity.class);
        startActivity(mainActivityIntent);
    }
    

关于java - 当我关闭应用程序...并打开通知...我单击 TestActicty 上的“返回”时,它会关闭应用程序并且不会返回主 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56724260/

相关文章:

java - 忽略textspeech中的某些单词(http地址)

java - 在数据库中存储月份格式(来自 Java)

android - AppCompactv21 工具栏作为 ActionBar 主题没有影响

java - Android float View (在其他 View 之上)

android - 如何使用新的 apk 升级以前的 apk 而不会丢失来自未知来源 apk 的 android 中的先前数据

java - <f :convertNumber> use the right number separator when using patterns to format currency?

java - 将 Javascript 对象转换为 Json 对象而不进行序列化

java - 如何禁用/启用 jackson SerializationFeature.WRAP_ROOT_VALUE?

android - 如何在 fragment 中使用 Emojicon

java - Spring @RestController - 请求被处理后