如果在5分钟内没有活动,如何关闭webview应用程序?

时间:2015-08-23 19:25:51

标签: android eclipse webview timer

我在没有帮助的长时间搜索后问这个问题。

我用eclipse创建了一个简单的webview应用程序。

(有时候 - 应用会根据网址打开网络浏览器)

如果5分钟内没有点击(未激活),我需要杀死该应用。

每当用户点击应用中的任何链接时 - 计时器都会重置。

我知道它应该很简单,但我已经混淆了太多的代码......:/

任何人都可以很好并展示代码示例吗?

非常感谢你

public class MainActivity extends Activity {
private WebView webView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final WebView webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebViewClient(new WebViewClient() {           
       // if url contains url1,2,3 - launch in browser     
       @Override public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
          if(url.contains("url1.com")||(url.contains("url2.com")) ||(url.contains("url3.com"))       ) {
               Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
               startActivity(i);
               return true;

          }
          else {

          view.loadUrl(url);

          return false;
          }
       }
    });

    webView.loadUrl("http://starter-site.com");

}

}

2 个答案:

答案 0 :(得分:0)

确定。好像我找到了更好的解决方案。 如果正在使用特定的url字符串,则决定终止应用程序。

所以,如果点击谷歌,它只会启动浏览器并关闭。

希望这在android的心态中是可以的......我猜不是。

无论如何,谢谢你的时间。

@Override public boolean shouldOverrideUrlLoading(final WebView view, final String url) { if(url.contains("url1.com")||(url.contains("url2.com")) ||(url.contains("url3.com")) ) { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(i);

           if(url.contains("google")) 
               {
               finish();
               }


           return true;

      }
      else {

      view.loadUrl(url);

      return false;
      }
   }
});

if(url.contains("google")) { finish(); } return true; } else { view.loadUrl(url); return false; } } });

答案 1 :(得分:0)

使用Handler。创建一个完成活动的Runnable。

每次用户点击链接时,请执行以下操作:

myHandler.removeCallbacks(myFinishingRunnable);
myHandler.postDelayed(myFinishingRunnable, 5000);

小心不要泄露您的活动(如果您的Runnable是内部类,请将其设为 static 并为您的活动提供WeakReference)。当您的活动恢复/暂停时,设置/取消设置回调可能是个好主意。