我在没有帮助的长时间搜索后问这个问题。
我用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");
}
}
答案 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)。当您的活动恢复/暂停时,设置/取消设置回调可能是个好主意。