【问题标题】:Reloading or Recreating old activity after changing a Setting Android更改设置 Android 后重新加载或重新创建旧活动
【发布时间】:2015-06-29 02:22:40
【问题描述】:

我有一个显示数据的活动,在一切开始之前,我会检查是否有互联网。如果没有,我将用户发送到 Wifi 设置。

我面临的问题是,在用户连接到互联网并按下后,应用程序是空的,没有数据。有没有办法重新加载此活动或重新创建它?

我尝试了这段代码,但它在我进入设置之前重新创建了活动,因此对话框保持打开状态

@Override
protected void onResume() {
super.onResume();
this.onCreate(null);
}

这是检查互联网连接的代码

    if(!isNetworkAvailable()){
         //Toast.makeText(getApplicationContext(), "internet is not avialable", Toast.LENGTH_LONG).show();

        AlertDialog.Builder ad = new AlertDialog.Builder(this);
        ad.setMessage("There is no Internet Connection.\n Please check your settings.");
        ad.setCancelable(false);
        ad.setPositiveButton("Internet Settings", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) 
            {
                startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));

            }               

        });
        ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) 
            {
                finish();
            }
        });

        ad.show();
    }

【问题讨论】:

    标签: android android-activity settings reload


    【解决方案1】:

    也许最简单的解决方案是调用Activity 类的recreate() 方法。类似于以下内容:YourActivity.recreate()。请记住,这只适用于 >= API 11。

    您还可以使用 Intent 简单地重新启动您当前的 Activity,如下所示:

    Intent intent = getIntent();
    finish();
    startActivity(intent);
    

    您可以在这里找到更多信息:How do I restart an Android Activity

    【讨论】:

    • 但是我什么时候应该这样做。我需要在用户连接到互联网后执行此操作。 @威利斯
    • @freeman292,您应该在用户连接到互联网之后执行此操作。可能通过设置标志并在onResume() 中执行此操作。
    • 我会在开始时通知用户他们是否连接到互联网。如果他们是,那么没有问题。如果没有,只需继续重新检查连接状态,直到连接成功,然后在成功连接后重新启动应用程序。
    • @Willis 我就是这么做的。您可以在我在问题中发布的代码中看到。问题是我应该把重新启动应用程序的代码放在哪里?在连接到互联网的部分之后?
    【解决方案2】:

    在代码的onResume 部分,我添加了一个if statement 再次检查互联网。

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多