“ | FLAG_ACTIVITY_CLEAR_TOP”问题

如何解决“ | FLAG_ACTIVITY_CLEAR_TOP”问题

|| 我使用以下功能从任何孩子返回首页首页活动)。 我的任务是,如果我们在任何子页面中,它都应该进入首页并希望显示一个警报框。 没有警报对话框的所有子页面都可以正常工作。 它适用于带有警报对话框的以下情况 例如:首页->子A 它进入主页并显示警报对话框 如果我在多个子页面中,则无法使用 例如:首页->子A->子B 它进入主页并变得不专心,但是没有显示警告对话框。 根据我的任务,警报应该为cancellabe = false,因此无法在没有单击警报对话框中的按钮的情况下返回
public void ShowConnectivityMessage()
    {
        Intent intent = new Intent( this,Homepage.class );
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        this.startActivity( intent );

        new AlertDialog.Builder(this)
        .setTitle(\"Cannot Connect To Service\")
        .setMessage(\"The service has been unreachable for 1 hour. \")
        .setCancelable(false)
        .setPositiveButton(\"Help me shut down the app\",new DialogInterface.OnClickListener() 
        {
            @Override
            public void onClick(DialogInterface dialog,int which) 
            {
                if(Homepage.bIsLoggedInM)
                {
                    StartTimer();
                    ShowHowToQuitTheApp();
                }
            }
        }).show();
    }    
所以请任何人帮助我........     

解决方法

        对于每个孩子,您都必须编写android后退按钮的方法,并将其设置为Homepage,以便每个孩子都可以轻松地移至Homepage。     ,        我的建议是,您从首页活动而不是子活动中调用警报对话框。这样,它将正常工作,其次,您不必在每个孩子中都使用相同的对话框代码(通过执行此操作,您将创建一个维护梦m,对对话框进行一次修改,然后需要遍历所有屏幕以更改..)。     ,        在CLEAR_TOP Intent上,还应该设置一个附加值,以指示将显示该对话框:
public static void returnToHomepage(Context context) {
    Intent intent = new Intent( context,Homepage.class );
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    // This is new:
    intent.putExtra(\"isNetFail\",true)

    context.startActivity( intent );
}
然后在Homepage#onResume()中,如果定义了其他内容,则使用showDialog()构建并显示对话框。在
onResume()
中执行此操作,而不是手动实例化和显示对话框,使您可以遵循适当的Android Activity生命周期-例如,在Activity中管理对话框(按设计进行),并确保Homepage活动重新回到前台在显示对话框时,从而避免任何泄漏的视图或窗口。
protected void onResume() {
    // ...
    if (getIntent().getBooleanExtra(\"isNetFail\",false)) {
        showDialog(DIALOG_NETWORK_FAIL);
    }
}
然后,当您想返回到Homepage活动(从NChild处于活动状态)时,您将调用:
Homepage.returnToHomepage(this);
最后,您不应该在Homepage活动中通过Handler进行30秒的轮询,因为一旦Homepage活动被暂停/停止,您将不再有任何保证。请参阅对Android Way进行多任务处理。相反,我建议创建一个通用的抽象
MyCommonActivity
类,所有NChildActivity都将对其进行扩展。该活动可以启动线程进行网络轮询。但是您需要在
onPause()
中停止它,然后在
onResume()
中恢复它。您当前正在做的事情意味着Homepage在后台运行,而这是一个很大的禁忌,原因有很多。实际上,一种更合适的方法是设置一个负责检查网络连接的后台服务,或者使用BroadcastReceiver侦听网络连接的更改。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?