我有一个业务逻辑,需要在转换发生时保持一个警告对话框,一个活动被销毁,另一个活动被创建。销毁的活动是启动警报对话框的活动。 我自己做了一些研究,没有找到任何可靠的解决方案。 如果你知道一个可以帮助我的解决方案或一些变通方法,那就太棒了。
我通常通过给出对当前活动的引用来构建我的对话框。这至少是guide告诉我们做的事情。所以我的快速回答是你不能。
然而,一个替代方案已经到位。而不是创建两个不同的活动,将它们放在两个不同的片段中。将它们加载到一个活动中,您可以在其中挂钩对话框。从您的活动中,您可以在不需要关闭对话框的情况下在两个片段之间切换,因为片段切换时活动不会被破坏。
这是我的建议仅供参考
如果允许,您可以先运行完全透明的Activity,然后将Dialog设置为系统级别,并在自定义应用程序中实例化Dialgo,您可以通过应用程序显示和关闭Dialog
喜欢这个层次结构:TransparentActivity(MainLauncher活动) - > Activity1 - > Activity2
您可以在Activity1销毁时显示Dialog,并在您的应用程序创建Activity2时将其关闭。
实际上,Dialog附加到TransparentActivity,因此您应该覆盖后退按钮事件以防止返回到TransparentActivity。
你可以试试这种方式
public abstract class BaseActivity extends AppCompatActivity {
protected void showProgressDialog(String message) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setCancelable(false);
alert.setTitle("your title");
alert.setMessage(message);
alert.create().show();
}
}
在你的两个活动中扩展这个BaseActivity
。调用showProgressDialog()
方法在FirstActivity
中显示您的警报消息,当FirstActivity
是Destroyed
然后从SecondActivity
调用它。
希望它会对你有所帮助。快乐的编码。