如何在加载后刷新当前活动?

时间:2017-08-09 00:17:06

标签: android android-activity

如何在加载后刷新当前活动1次?我的代码刷新了活动,但是在循环中。

这个网站有一些例子,但大多数是点击按钮后。不是我的情况..

我的代码是:

finish();startActivity(getIntent());

sry my english ..

4 个答案:

答案 0 :(得分:2)

就这样做。

  startActivity(getIntent()); 
  finish();  

答案 1 :(得分:0)

公共类MainActivity扩展Activity {     字符串网址;

//initializing WebView
private WebView mwebView;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new Div1().execute();

    String tag = (String) getIntent().getSerializableExtra("tag");

    Intent intent = getIntent();

    url = "https://xxxxxxxx.com/profile/"+tag+"";

    //WebView
    mwebView = (WebView) findViewById(R.id.myWebView);
    WebSettings webSettings = mwebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    //improve webView performance
    mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    //mwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    mwebView.getSettings().setAppCacheEnabled(false);
    mwebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webSettings.setDomStorageEnabled(true);
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
    webSettings.setUseWideViewPort(true);
    webSettings.setSavePassword(true);
    webSettings.setSaveFormData(true);
    webSettings.setEnableSmoothTransition(true);


    mwebView.loadUrl("https://xxxxxxxx.com/profile/"+tag+"");

    //force links open in webview only
    mwebView.setWebViewClient(new MyWebviewClient());
}

private class MyWebviewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {



        if (Uri.parse(url).getHost().equals("xxxxxxxx.com/profile/\"+tag+\"")){


            return false;
        }
        else {

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }

    }}

// Div1 AsyncTask
private class Div1 extends AsyncTask<String, String, String> {
    @Override
    protected void onPreExecute() {

super.onPreExecute();

    }

    @Override
    protected String doInBackground(String... params) {

        return null;
    }

    @Override
    protected void onPostExecute(String result) {

        mwebView.loadUrl("javascript:(function(){"+
                "l=document.getElementsByTagName('BUTTON')[1];"+
                "e=document.createEvent('MouseEvent');"+
                "e.initEvent('click',true, true);"+
                "l.dispatchEvent(e);"+
                "})()");
    }
}

}

答案 2 :(得分:0)

Button ok = (Button) findViewById(R.id.btnOK2);
ok.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(getIntent());
        finish();
    }
});

答案 3 :(得分:0)

这是我写的示例代码:

public class MainActivity extends AppCompatActivity {


static boolean isInit = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(isInit) {
        isInit = false;
        startActivity(new Intent(this, MainActivity.class));
        finish();
        Log.d("Restart", "asdasda");
    }

}

}

我需要说的是,如果你从另一个活动开始这个活动,你需要在每次调用中将isInit变量设置为true,如下所示:

MainActivity.isInit = true;
    startActivity(new Intent(this, MainActivity.class));

使用&#34; getIntent()&#34;而不是&#34;新的Intent(this,MainActivity.class)&#34;在记录后关闭应用程序&#34;重新启动&#34;文本。

我不知道这是否是你想要的(我认为这不能解决任何问题)。我仍然认为更好的是只重新加载视图。