private void openInBrowser(final String urlString) {
   final Intent intent = new Intent(Intent.ACTION_VIEW);
   final boolean externalUrl;
   if (BookDownloader.acceptsUri(Uri.parse(urlString))) {
     intent.setClass(BaseActivity, BookDownloader.class);
     intent.putExtra(
         BookDownloaderService.SHOW_NOTIFICATIONS_KEY, BookDownloaderService.Notifications.ALL);
     externalUrl = false;
   } else {
     externalUrl = true;
   }
   final NetworkLibrary nLibrary = NetworkLibrary.Instance();
   new Thread(
           new Runnable() {
             public void run() {
               if (!urlString.startsWith("fbreader-action:")) {
                 nLibrary.initialize();
               }
               intent.setData(Uri.parse(nLibrary.rewriteUrl(urlString, externalUrl)));
               BaseActivity.runOnUiThread(
                   new Runnable() {
                     public void run() {
                       try {
                         BaseActivity.startActivity(intent);
                       } catch (ActivityNotFoundException e) {
                         e.printStackTrace();
                       }
                     }
                   });
             }
           })
       .start();
 }
 private void openInBrowser(String urlString) {
   final Intent intent = new Intent(Intent.ACTION_VIEW);
   boolean externalUrl = true;
   if (BookDownloader.acceptsUri(Uri.parse(urlString))) {
     intent.setClass(myBaseActivity, BookDownloader.class);
     intent.putExtra(
         BookDownloaderService.SHOW_NOTIFICATIONS_KEY, BookDownloaderService.Notifications.ALL);
     externalUrl = false;
   }
   final NetworkLibrary nLibrary = NetworkLibrary.Instance();
   try {
     nLibrary.initialize();
   } catch (ZLNetworkException e) {
   }
   intent.setData(Uri.parse(NetworkLibrary.Instance().rewriteUrl(urlString, externalUrl)));
   try {
     myBaseActivity.startActivity(intent);
   } catch (ActivityNotFoundException e) {
     // TODO: show an error message
   }
 }