<!DOCTYPE html>

































































































<html>
<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />

<link rel="shortcut icon" type="image/x-icon" href="../../../../../../../favicon.ico" />
<title>IntentsTestRule | Android Developers</title>

<!-- STYLESHEETS -->
<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
  title="roboto">
<link href="../../../../../../../assets/css/default.css?v=5" rel="stylesheet" type="text/css">


<!-- FULLSCREEN STYLESHEET -->
<link href="../../../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
type="text/css">


<!-- JAVASCRIPT -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="../../../../../../../assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
  var toRoot = "../../../../../../../";
  var metaTags = [];
  var devsite = false;
</script>
<script src="../../../../../../../assets/js/docs.js?v=3" type="text/javascript"></script>



<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-5831155-1', 'android.com');
  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
  ga('send', 'pageview');
  ga('universal.send', 'pageview'); // Send page view for new tracker.
</script>

</head>

<body class="gc-documentation
  develop reference" itemscope itemtype="http://schema.org/Article">
  <div id="doc-api-level" class="" style="display:none"></div>
  <a name="top"></a>


<a name="top"></a>

<!-- dialog to prompt lang pref change when loaded from hardcoded URL
<div id="langMessage" style="display:none">
  <div>
    <div class="lang en">
      <p>You requested a page in English, would you like to proceed with this language setting?</p>
    </div>
    <div class="lang es">
      <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ja">
      <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ko">
      <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ru">
      <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang zh-cn">
      <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang zh-tw">
      <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p>
    </div>
    <a href="#" class="button yes" onclick="return false;">
      <span class="lang en">Yes</span>
      <span class="lang es">Sí</span>
      <span class="lang ja">Yes</span>
      <span class="lang ko">Yes</span>
      <span class="lang ru">Yes</span>
      <span class="lang zh-cn">是的</span>
      <span class="lang zh-tw">没有</span>
    </a>
    <a href="#" class="button" onclick="$('#langMessage').hide();return false;">
      <span class="lang en">No</span>
      <span class="lang es">No</span>
      <span class="lang ja">No</span>
      <span class="lang ko">No</span>
      <span class="lang ru">No</span>
      <span class="lang zh-cn">没有</span>
      <span class="lang zh-tw">没有</span>
    </a>
  </div>
</div> -->


  <!-- Header -->
  <div id="header-wrapper">
    <div id="header">




      <div class="wrap" id="header-wrap">
        <div class="col-3 logo">
          <a href="../../../../../../../index.html">
            <img src="../../../../../../../assets/images/dac_logo.png"
                srcset="../../../../../../../assets/images/dac_logo@2x.png 2x"
                width="123" height="25" alt="Android Developers" />
          </a>
          <div class="btn-quicknav" id="btn-quicknav">
            <a href="#" class="arrow-inactive">Quicknav</a>
            <a href="#" class="arrow-active">Quicknav</a>
          </div>
        </div>
        <ul class="nav-x col-9">
            <li class="design">
              <a href="../../../../../../../design/index.html"
              zh-tw-lang="設計"
              zh-cn-lang="设计"
              ru-lang="Проектирование"
              ko-lang="디자인"
              ja-lang="設計"
              es-lang="Diseñar"
              >Design</a></li>
            <li class="develop"><a href="../../../../../../../develop/index.html"
              zh-tw-lang="開發"
              zh-cn-lang="开发"
              ru-lang="Разработка"
              ko-lang="개발"
              ja-lang="開発"
              es-lang="Desarrollar"
              >Develop</a></li>
            <li class="distribute last"><a href="../../../../../../../distribute/index.html"
              zh-tw-lang="發佈"
              zh-cn-lang="分发"
              ru-lang="Распространение"
              ko-lang="배포"
              ja-lang="配布"
              es-lang="Distribuir"
              >Distribute</a></li>
        </ul>




<div class="menu-container">
  <div class="moremenu">
    <div id="more-btn"></div>
  </div>
  <div class="morehover" id="moremenu">
    <div class="top"></div>
    <div class="mid">
      <div class="header">Links</div>
      <ul>
        <li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
        <li><a href="../../../../../../../about/index.html">About Android</a></li>
      </ul>
      <div class="header">Android Sites</div>
      <ul>
        <li><a href="http://www.android.com">Android.com</a></li>
        <li class="active"><a>Android Developers</a></li>
        <li><a href="http://source.android.com">Android Open Source Project</a></li>
      </ul>




      <br class="clearfix" />
    </div><!-- end 'mid' -->
    <div class="bottom"></div>
  </div><!-- end 'moremenu' -->

  <div class="search" id="search-container">
    <div class="search-inner">
      <div id="search-btn"></div>
      <div class="left"></div>
      <form onsubmit="return submit_search()">
        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
          onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
          onkeydown="return search_changed(event, true, '../../../../../../../')"
          onkeyup="return search_changed(event, false, '../../../../../../../')" />
      </form>
      <div class="right"></div>
      <a class="close hide">close</a>
      <div class="left"></div>
      <div class="right"></div>
    </div><!-- end search-inner -->
  </div><!-- end search-container -->

  <div class="search_filtered_wrapper reference">
    <div class="suggest-card reference no-display">
      <ul class="search_filtered">
      </ul>
    </div>
  </div>

  <div class="search_filtered_wrapper docs">
    <div class="suggest-card dummy no-display">&nbsp;</div>
    <div class="suggest-card develop no-display">
      <ul class="search_filtered">
      </ul>
      <div class="child-card guides no-display">
      </div>
      <div class="child-card training no-display">
      </div>
      <div class="child-card samples no-display">
      </div>
    </div>
    <div class="suggest-card design no-display">
      <ul class="search_filtered">
      </ul>
    </div>
    <div class="suggest-card distribute no-display">
      <ul class="search_filtered">
      </ul>
    </div>
  </div>
</div><!-- end menu-container (search and menu widget) -->



        <!-- Expanded quicknav -->
        <div id="quicknav" class="col-13">
          <ul>
            <li class="about">
              <ul>
                <li><a href="../../../../../../../about/index.html">About</a></li>
                <li><a href="../../../../../../../wear/index.html">Wear</a></li>
                <li><a href="../../../../../../../tv/index.html">TV</a></li>
                <li><a href="../../../../../../../auto/index.html">Auto</a></li>
              </ul>
            </li>
            <li class="design">
              <ul>
                <li><a href="../../../../../../../design/index.html">Get Started</a></li>
                <li><a href="../../../../../../../design/devices.html">Devices</a></li>
                <li><a href="../../../../../../../design/style/index.html">Style</a></li>
                <li><a href="../../../../../../../design/patterns/index.html">Patterns</a></li>
                <li><a href="../../../../../../../design/building-blocks/index.html">Building Blocks</a></li>
                <li><a href="../../../../../../../design/downloads/index.html">Downloads</a></li>
                <li><a href="../../../../../../../design/videos/index.html">Videos</a></li>
              </ul>
            </li>
            <li class="develop">
              <ul>
                <li><a href="../../../../../../../training/index.html"
                  zh-tw-lang="訓練課程"
                  zh-cn-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"
                  >Training</a></li>
                <li><a href="../../../../../../../guide/index.html"
                  zh-tw-lang="API 指南"
                  zh-cn-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"
                  >API Guides</a></li>
                <li><a href="../../../../../../../reference/packages.html"
                  zh-tw-lang="參考資源"
                  zh-cn-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"
                  >Reference</a></li>
                <li><a href="../../../../../../../sdk/index.html"
                  zh-tw-lang="相關工具"
                  zh-cn-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"
                  >Tools</a>
                </li>
                <li><a href="../../../../../../../google/index.html">Google Services</a>
                </li>

              </ul>
            </li>
            <li class="distribute last">
              <ul>
                <li><a href="../../../../../../../distribute/googleplay/index.html">Google Play</a></li>
                <li><a href="../../../../../../../distribute/essentials/index.html">Essentials</a></li>
                <li><a href="../../../../../../../distribute/users/index.html">Get Users</a></li>
                <li><a href="../../../../../../../distribute/engage/index.html">Engage &amp; Retain</a></li>
                <li><a href="../../../../../../../distribute/monetize/index.html">Monetize</a></li>
                <li><a href="../../../../../../../distribute/analyze/index.html">Analyze</a></li>
                <li><a href="../../../../../../../distribute/tools/index.html">Tools &amp; Reference</a></li>
                <li><a href="../../../../../../../distribute/stories/index.html">Developer Stories</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /Expanded quicknav -->
      </div><!-- end header-wrap.wrap -->
    </div><!-- end header -->


    <!-- Secondary x-nav -->
    <div id="nav-x">
        <div class="wrap" style="position:relative;z-index:1">





            <ul class="nav-x col-9 develop" style="width:100%">
                <li class="training"><a href="../../../../../../../training/index.html"
                  zh-tw-lang="訓練課程"
                  zh-cn-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"
                  >Training</a></li>
                <li class="guide"><a href="../../../../../../../guide/index.html"
                  zh-tw-lang="API 指南"
                  zh-cn-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"
                  >API Guides</a></li>
                <li class="reference"><a href="../../../../../../../reference/packages.html"
                  zh-tw-lang="參考資源"
                  zh-cn-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"
                  >Reference</a></li>
                <li class="tools"><a href="../../../../../../../sdk/index.html"
                  zh-tw-lang="相關工具"
                  zh-cn-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"
                  >Tools</a></li>
                <li class="google"><a href="../../../../../../../google/index.html"
                  >Google Services</a>
                </li>

            </ul>
        </div>
    </div>
    <!-- /Sendondary x-nav DEVELOP -->



    <div id="searchResults" class="wrap" style="display:none;">
      <h2 id="searchTitle">Results</h2>
      <div id="leftSearchControl" class="search-control">Loading...</div>
    </div>
  </div> <!--end header-wrapper -->

  <div id="sticky-header">
    <div>
      <a class="logo" href="#top"></a>
      <a class="top" href="#top"></a>
      <ul class="breadcrumb">

        <li class="current">IntentsTestRule</li>
      </ul>
    </div>
  </div>





  <div class="wrap clearfix" id="body-content">
    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
      <div id="devdoc-nav">
      <div id="api-nav-header">
        <div id="api-level-toggle">
          <label for="apiLevelCheckbox" class="disabled"
            title="Select your target API level to dim unavailable APIs">API level: </label>
          <div class="select-wrapper">
            <select id="apiLevelSelector">
              <!-- option elements added by buildApiLevelSelector() -->
            </select>
          </div>
        </div><!-- end toggle -->
        <div id="api-nav-title">Android APIs</div>
        </div><!-- end nav header -->
      <script>
        var SINCE_DATA = [  ];
        buildApiLevelSelector();
      </script>

      <div id="swapper">
        <div id="nav-panels">
          <div id="resize-packages-nav">
            <div id="packages-nav" class="scroll-pane">

              <ul>

    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/package-summary.html">android.support.test</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/annotation/package-summary.html">android.support.test.annotation</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/package-summary.html">android.support.test.espresso</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/action/package-summary.html">android.support.test.espresso.action</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/assertion/package-summary.html">android.support.test.espresso.assertion</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/base/package-summary.html">android.support.test.espresso.base</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/contrib/package-summary.html">android.support.test.espresso.contrib</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/intent/package-summary.html">android.support.test.espresso.intent</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/intent/matcher/package-summary.html">android.support.test.espresso.intent.matcher</a></li>
    <li class="selected api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/intent/rule/package-summary.html">android.support.test.espresso.intent.rule</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/matcher/package-summary.html">android.support.test.espresso.matcher</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/espresso/util/package-summary.html">android.support.test.espresso.util</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/filters/package-summary.html">android.support.test.filters</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/rule/package-summary.html">android.support.test.rule</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/runner/package-summary.html">android.support.test.runner</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/runner/intent/package-summary.html">android.support.test.runner.intent</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/runner/lifecycle/package-summary.html">android.support.test.runner.lifecycle</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../../reference/android/support/test/uiautomator/package-summary.html">android.support.test.uiautomator</a></li>
              </ul><br/>

            </div> <!-- end packages-nav -->
          </div> <!-- end resize-packages -->
          <div id="classes-nav" class="scroll-pane">



            <ul>



    <li><h2>Classes</h2>
      <ul>
          <li class="selected api apilevel-"><a href="../../../../../../../reference/android/support/test/espresso/intent/rule/IntentsTestRule.html">IntentsTestRule</a></li>
      </ul>
    </li>



            </ul><br/>


          </div><!-- end classes -->
        </div><!-- end nav-panels -->
        <div id="nav-tree" style="display:none" class="scroll-pane">
          <div id="tree-list"></div>
        </div><!-- end nav-tree -->
      </div><!-- end swapper -->
      <div id="nav-swap">
      <a class="fullscreen">fullscreen</a>
      <a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>
      </div>
    </div> <!-- end devdoc-nav -->
    </div> <!-- end side-nav -->
    <script type="text/javascript">
      // init fullscreen based on user pref
      var fullscreen = readCookie("fullscreen");
      if (fullscreen != 0) {
        if (fullscreen == "false") {
          toggleFullscreen(false);
        } else {
          toggleFullscreen(true);
        }
      }
      // init nav version for mobile
      if (isMobile) {
        swapNav(); // tree view should be used on mobile
        $('#nav-swap').hide();
      } else {
        chooseDefaultNav();
        if ($("#nav-tree").is(':visible')) {
          init_default_navtree("../../../../../../../");
        }
      }
      // scroll the selected page into view
      $(document).ready(function() {
        scrollIntoView("packages-nav");
        scrollIntoView("classes-nav");
        });
    </script>





<div class="col-12"  id="doc-col">

<div id="api-info-block">
































<div class="sum-details-links">

Summary:









  <a href="#pubctors">Ctors</a>





  &#124; <a href="#promethods">Protected Methods</a>



  &#124; <a href="#inhmethods">Inherited Methods</a>

&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>

</div><!-- end sum-details-links -->
<div class="api-level">




</div>
</div><!-- end api-info-block -->


<!-- ======== START OF CLASS DATA ======== -->

<div id="jd-header">
    public



    class
<h1 itemprop="name">IntentsTestRule</h1>












    extends <a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html">ActivityTestRule</a>&lt;T&nbsp;extends&nbsp;Activity&gt;<br/>












</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">


    <tr>

        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
    </tr>


    <tr>

            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>

        <td colspan="3" class="jd-inheritance-class-cell"><a href="../../../../../../../reference/android/support/test/rule/UiThreadTestRule.html">android.support.test.rule.UiThreadTestRule</a></td>
    </tr>


    <tr>

            <td class="jd-inheritance-space">&nbsp;</td>

            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>

        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html">android.support.test.rule.ActivityTestRule</a>&lt;T&nbsp;extends&nbsp;android.app.Activity&gt;</td>
    </tr>


    <tr>

            <td class="jd-inheritance-space">&nbsp;</td>

            <td class="jd-inheritance-space">&nbsp;</td>

            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>

        <td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.intent.rule.IntentsTestRule&lt;T&nbsp;extends&nbsp;android.app.Activity&gt;</td>
    </tr>


</table>







<div class="jd-descr">


<h2>Class Overview</h2>
<p itemprop="articleBody">This rule makes it easy to use Espresso-Intents APIs in functional UI tests. This class is an
 extension of <code><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html">ActivityTestRule</a></code>, which initializes Espresso-Intents before each test
 annotated with
 <a href="http://junit.org/javadoc/latest/org/junit/Test.html"><code>Test</code></a> and releases
 Espresso-Intents after each test run. The Activity will be terminated after each test and this
 rule can be used in the same way as <code><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html">ActivityTestRule</a></code>.

 <p>
 Espresso-Intents APIs can be used in two ways:
 <ul>
 <li>Intent Verification, using the <code><a href="../../../../../../../reference/android/support/test/espresso/intent/Intents.html#intended(org.hamcrest.Matcher<android.content.Intent>)">intended(Matcher)</a></code> API<li/>
 <li>Intent Stubbing, using the <code><a href="../../../../../../../reference/android/support/test/espresso/intent/Intents.html#intending(org.hamcrest.Matcher<android.content.Intent>)">intending(Matcher)</a></code> API<li/>
 </ul></p>





</div><!-- jd-descr -->
















<div class="jd-descr">


<h2>Summary</h2>























<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            </nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/espresso/intent/rule/IntentsTestRule.html#IntentsTestRule(java.lang.Class<T>)">IntentsTestRule</a></span>(Class&lt;T&gt; activityClass)</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            </nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/espresso/intent/rule/IntentsTestRule.html#IntentsTestRule(java.lang.Class<T>, boolean)">IntentsTestRule</a></span>(Class&lt;T&gt; activityClass, boolean initialTouchMode)</nobr>

  </td></tr>



</table>








<!-- ========== METHOD SUMMARY =========== -->
<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/espresso/intent/rule/IntentsTestRule.html#afterActivityFinished()">afterActivityFinished</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 finished.



        </div>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/espresso/intent/rule/IntentsTestRule.html#afterActivityLaunched()">afterActivityLaunched</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 launched, but before any test code is run including any method annotated with
 <a href="http://junit.sourceforge.net/javadoc/org/junit/Before.html"><code>Before</code></a>.



        </div>

  </td></tr>



</table>





<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
  <div style="clear:left;">Inherited Methods</div></th></tr>


<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.support.test.rule.ActivityTestRule" class="jd-expando-trigger closed"
          ><img id="inherited-methods-android.support.test.rule.ActivityTestRule-trigger"
          src="../../../../../../../assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From class

  <a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html">android.support.test.rule.ActivityTestRule</a>

<div id="inherited-methods-android.support.test.rule.ActivityTestRule">
  <div id="inherited-methods-android.support.test.rule.ActivityTestRule-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-android.support.test.rule.ActivityTestRule-summary" style="display: none;">
    <table class="jd-sumtable-expando">




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#afterActivityFinished()">afterActivityFinished</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 finished.



        </div>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#afterActivityLaunched()">afterActivityLaunched</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 launched, but before any test code is run including any method annotated with
 <a href="http://junit.sourceforge.net/javadoc/org/junit/Before.html"><code>Before</code></a>.



        </div>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            Statement</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#apply(org.junit.runners.model.Statement, org.junit.runner.Description)">apply</a></span>(Statement base, Description description)</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#beforeActivityLaunched()">beforeActivityLaunched</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to execute any code that should run before your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 created and launched.



        </div>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            T</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#getActivity()">getActivity</a></span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            Intent</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#getActivityIntent()">getActivityIntent</a></span>()</nobr>

        <div class="jd-descrdiv">
          Override this method to set up Intent as if supplied to
 <code><a href="../../../../../../../reference/android/content/Context.html#startActivity(android.content.Intent)">startActivity(Intent)</a></code>.



        </div>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            T</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/ActivityTestRule.html#launchActivity(android.content.Intent)">launchActivity</a></span>(Intent startIntent)</nobr>

        <div class="jd-descrdiv">
          Launches the Activity under test.



        </div>

  </td></tr>


</table>
  </div>
</div>
</td></tr>



<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.support.test.rule.UiThreadTestRule" class="jd-expando-trigger closed"
          ><img id="inherited-methods-android.support.test.rule.UiThreadTestRule-trigger"
          src="../../../../../../../assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From class

  <a href="../../../../../../../reference/android/support/test/rule/UiThreadTestRule.html">android.support.test.rule.UiThreadTestRule</a>

<div id="inherited-methods-android.support.test.rule.UiThreadTestRule">
  <div id="inherited-methods-android.support.test.rule.UiThreadTestRule-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-android.support.test.rule.UiThreadTestRule-summary" style="display: none;">
    <table class="jd-sumtable-expando">




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            Statement</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/UiThreadTestRule.html#apply(org.junit.runners.model.Statement, org.junit.runner.Description)">apply</a></span>(Statement base, Description description)</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/UiThreadTestRule.html#runOnUiThread(java.lang.Runnable)">runOnUiThread</a></span>(Runnable runnable)</nobr>

        <div class="jd-descrdiv">
          Helper for running portions of a test on the UI thread.



        </div>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            boolean</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../../reference/android/support/test/rule/UiThreadTestRule.html#shouldRunOnUiThread(org.junit.runner.Description)">shouldRunOnUiThread</a></span>(Description description)</nobr>

  </td></tr>


</table>
  </div>
</div>
</td></tr>



<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
          ><img id="inherited-methods-java.lang.Object-trigger"
          src="../../../../../../../assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From class

  java.lang.Object

<div id="inherited-methods-java.lang.Object">
  <div id="inherited-methods-java.lang.Object-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
    <table class="jd-sumtable-expando">




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            Object</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">clone</span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            boolean</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">equals</span>(Object arg0)</nobr>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">finalize</span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            Class&lt;?&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">getClass</span>()</nobr>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>





            int</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">hashCode</span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">notify</span>()</nobr>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">notifyAll</span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>





            String</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">toString</span>()</nobr>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>()</nobr>

  </td></tr>



    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>

  </td></tr>



    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>


            final


            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>(long arg0)</nobr>

  </td></tr>


</table>
  </div>
</div>
</td></tr>



<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-org.junit.rules.TestRule" class="jd-expando-trigger closed"
          ><img id="inherited-methods-org.junit.rules.TestRule-trigger"
          src="../../../../../../../assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From interface

  org.junit.rules.TestRule

<div id="inherited-methods-org.junit.rules.TestRule">
  <div id="inherited-methods-org.junit.rules.TestRule-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-org.junit.rules.TestRule-summary" style="display: none;">
    <table class="jd-sumtable-expando">




    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract




            Statement</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">apply</span>(Statement arg0, Description arg1)</nobr>

  </td></tr>


</table>
  </div>
</div>
</td></tr>


</table>


</div><!-- jd-descr (summary) -->

<!-- Details -->








<!-- XML Attributes -->


<!-- Enum Values -->


<!-- Constants -->


<!-- Fields -->


<!-- Public ctors -->


<!-- ========= CONSTRUCTOR DETAIL ======== -->
<h2>Public Constructors</h2>



<A NAME="IntentsTestRule(java.lang.Class<T>)"></A>

<div class="jd-details api apilevel-">
    <h4 class="jd-details-title">
      <span class="normal">
        public





      </span>
      <span class="sympad">IntentsTestRule</span>
      <span class="normal">(Class&lt;T&gt; activityClass)</span>
    </h4>
      <div class="api-level">
        <div></div>



      </div>
    <div class="jd-details-descr">




  <div class="jd-tagdata jd-tagdescr"><p></p></div>

    </div>
</div>


<A NAME="IntentsTestRule(java.lang.Class<T>, boolean)"></A>

<div class="jd-details api apilevel-">
    <h4 class="jd-details-title">
      <span class="normal">
        public





      </span>
      <span class="sympad">IntentsTestRule</span>
      <span class="normal">(Class&lt;T&gt; activityClass, boolean initialTouchMode)</span>
    </h4>
      <div class="api-level">
        <div></div>



      </div>
    <div class="jd-details-descr">




  <div class="jd-tagdata jd-tagdescr"><p></p></div>

    </div>
</div>





<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->



<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->



<!-- ========= METHOD DETAIL ======== -->

<h2>Protected Methods</h2>



<A NAME="afterActivityFinished()"></A>

<div class="jd-details api apilevel-">
    <h4 class="jd-details-title">
      <span class="normal">
        protected




        void
      </span>
      <span class="sympad">afterActivityFinished</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div></div>



      </div>
    <div class="jd-details-descr">




  <div class="jd-tagdata jd-tagdescr"><p>Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 finished.
 This method is called after each test method, including any method annotated with
 <a href="http://junit.sourceforge.net/javadoc/org/junit/After.html"><code>After</code></a>.
</p></div>

    </div>
</div>


<A NAME="afterActivityLaunched()"></A>

<div class="jd-details api apilevel-">
    <h4 class="jd-details-title">
      <span class="normal">
        protected




        void
      </span>
      <span class="sympad">afterActivityLaunched</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div></div>



      </div>
    <div class="jd-details-descr">




  <div class="jd-tagdata jd-tagdescr"><p>Override this method to execute any code that should run after your <code><a href="../../../../../../../reference/android/app/Activity.html">Activity</a></code> is
 launched, but before any test code is run including any method annotated with
 <a href="http://junit.sourceforge.net/javadoc/org/junit/Before.html"><code>Before</code></a>.
 <p>
 Prefer
 <a href="http://junit.sourceforge.net/javadoc/org/junit/Before.html"><code>Before</code></a>
 over this method. This method should usually not be overwritten directly in tests and only be
 used by subclasses of ActivityTestRule to get notified when the activity is created and
 visible but test runs.
</p></div>

    </div>
</div>





<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>

<div id="footer" class="wrap" >


  <div id="copyright">

  Except as noted, this content is licensed under <a
  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
  For details and restrictions, see the <a href="../../../../../../../license.html">
  Content License</a>.
  </div>
  <div id="build_info">

    Android &nbsp;r &mdash;
<script src="../../../../../../../timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>

  </div>


  <div id="footerlinks">

  <p>
    <a href="../../../../../../../about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
    <a href="../../../../../../../legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
    <a href="../../../../../../../support.html">Support</a>
  </p>
  </div>

</div> <!-- end footer -->
</div> <!-- jd-content -->

</div><!-- end doc-content -->

</div> <!-- end body-content -->






</body>
</html>
