Android 完成后,意图再次开始

Android 完成后,意图再次开始,android,android-intent,exit,activity-finish,Android,Android Intent,Exit,Activity Finish,我使用一个按钮退出我的应用程序,但是,当我退出它并按下最近的应用程序按钮时(下图) 并通过灰色屏幕重新输入我的应用程序,而不是从主活动启动应用程序,而是从最近的活动启动应用程序,因为它有bo数据而崩溃。。 即使应用程序崩溃,当我再次按下灰色活动时,它也会再次打开第二个活动并再次崩溃 灰色屏幕的图片() 我如何解决当用户点击灰色屏幕时将启动主要活动的问题 这是我的代码: AlertDialog.Builder builder = new AlertDialog.Builder(th

我使用一个按钮退出我的应用程序,但是,当我退出它并按下最近的应用程序按钮时(下图) 并通过灰色屏幕重新输入我的应用程序,而不是从主活动启动应用程序,而是从最近的活动启动应用程序,因为它有bo数据而崩溃。。 即使应用程序崩溃,当我再次按下灰色活动时,它也会再次打开第二个活动并再次崩溃

灰色屏幕的图片()

我如何解决当用户点击灰色屏幕时将启动主要活动的问题

这是我的代码:

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Stop Navigation ");
        builder.setMessage("Are you sure you want to stop navigation?");
        builder.setCancelable(false);
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {


                exitButtonPressed = true;


                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);

                //finishAffinity(); 
                //System.exit(0); 
                //finishAndRemoveTask(); 
                //android.os.Process.killProcess(android.os.Process.myPid());

// I TRIED ALL THE ABOVE BUT ITS ITS NOT WORKING.. 



            }
        });
谢谢

编辑:

当点击灰色方块时,它会在恢复时激活

我注意到,每次我删除任务并通过前台服务进入第二个活动时,它都会发生。 我认为这是一个悬而未决的意图

这是我的待定意图代码:

Intent i = new Intent(getApplicationContext(), MapsActivity.class);
i.putExtra("AddressBackground22", mAddress);
i.putExtra("AddressType22", mAddressType);
i.putExtra("AddressLatBackground22", destinationLat);


PendingIntent activityPendingIntent = PendingIntent.getActivity(this, 25, i, 0);

    NotificationCompat.Action action2 = new NotificationCompat.Action(R.drawable.ic_cancel, getString(R.string.remove_location_updates), servicePendingIntent);

NotificationCompat.Action action = new NotificationCompat.Action(R.drawable.ic_launch, getString(R.string.launch_activity), activityPendingIntent);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
    Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
            .setContentTitle("App is running in background")
            .addAction(action)
            .addAction(action2)
            .setColor(getColor(R.color.foreGroundBackgroundColor))
            .setPriority(NotificationManager.IMPORTANCE_HIGH)
            .setCategory(Notification.CATEGORY_SERVICE)
            .setSmallIcon(R.drawable.applogo)
            .build();
您应该在完成活动之前关闭对话框

Dialog.dismiss();
希望可能会有所帮助。

你为什么要使用

 Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
就叫

finish();

点击按钮

Hey@Usama Altaf感谢您的重播!它仍然不起作用。是的,你是对的,但应该有有限性;没有完成();嘿@Abhnav Maurya谢谢你的回复!如果我只使用finish();它向我显示最近的应用程序菜单,而不是灰色屏幕,我可以看到活动正在运行..当我通过最近的应用程序输入我的应用程序时,它刚刚崩溃..@Mr.Goomer你能发送日志吗?运行应用程序。到达此对话框。然后重新打开应用程序。有限性();将关闭所有正在运行的活动。这个问题可能存在于其他活动中。例如main或您的splash。这是恢复开始前的日志:它不应该恢复,而是从第一个活动开始启动应用程序。。谢谢你移动了意图代码。当某些活动出现在前面,用户返回应用程序时,onResume将运行。如果应用程序在后台(最小化),则应用程序从onCreate启动。
finish();