<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "//www.w3.org/TR/html4/strict.dtd">
<HTML style="overflow:auto;">
<HEAD>
<meta name="generator" content="JDiff v1.1.0">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
android.app.Notification.WearableExtender
</TITLE>
<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
<noscript>
<style type="text/css">
body{overflow:auto;}
#body-content{position:relative; top:0;}
#doc-content{overflow:visible;border-left:3px solid #666;}
#side-nav{padding:0;}
#side-nav .toggle-list ul {display:block;}
#resize-packages-nav{border-bottom:3px solid #666;}
</style>
</noscript>
<style type="text/css">
</style>
</HEAD>
<BODY>
<!-- Start of nav bar -->
<a name="top"></a>
<div id="header" style="margin-bottom:0;padding-bottom:0;">
<div id="headerLeft">
<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
</div>
  <div id="headerRight">
  <div id="headerLinks">
<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
<span class="text">
<!-- &nbsp;<a href="#">English</a> | -->
<nobr><a href="//developer.android.com" target="_top">Android Developers</a> | <a href="//www.android.com" target="_top">Android.com</a></nobr>
</span>
</div>
  <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td colspan="2" class="diffspechead">API Diff Specification</td>
      </tr>
      <tr>
        <td class="diffspec" style="padding-top:.25em">To Level:</td>
        <td class="diffvaluenew" style="padding-top:.25em">22</td>
      </tr>
      <tr>
        <td class="diffspec">From Level:</td>
        <td class="diffvalueold">21</td>
      </tr>
      <tr>
        <td class="diffspec">Generated</td>
        <td class="diffvalue">2015.02.19 13:16</td>
      </tr>
    </table>
    </div><!-- End and-diff-id -->
  <div class="and-diff-id" style="margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
      </tr>
    </table>
  </div> <!-- End and-diff-id -->
  </div> <!-- End headerRight -->
  </div> <!-- End header -->
<div id="body-content" xstyle="padding:12px;padding-right:18px;">
<div id="doc-content" style="position:relative;">
<div id="mainBodyFluid">
<H2>
Class android.app.<A HREF="../../../../reference/android/app/Notification.WearableExtender.html" target="_top"><font size="+2"><code>Notification.WearableExtender</code></font></A>
</H2>
<a NAME="constructors"></a>
<a NAME="methods"></a>
<p>
<a NAME="Added"></a>
<TABLE summary="Added Methods" WIDTH="100%">
<TR>
  <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.getHintAvoidBackgroundClipping_added()"></A>
  <nobr><code>boolean</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#getHintAvoidBackgroundClipping()" target="_top"><code>getHintAvoidBackgroundClipping</code></A>()</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.getHintScreenTimeout_added()"></A>
  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#getHintScreenTimeout()" target="_top"><code>getHintScreenTimeout</code></A>()</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.setHintAvoidBackgroundClipping_added(boolean)"></A>
  <nobr><code>WearableExtender</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#setHintAvoidBackgroundClipping(boolean)" target="_top"><code>setHintAvoidBackgroundClipping</code></A>(<code>boolean</code>)</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.setHintScreenTimeout_added(int)"></A>
  <nobr><code>WearableExtender</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#setHintScreenTimeout(int)" target="_top"><code>setHintScreenTimeout</code></A>(<code>int</code>)</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<a NAME="fields"></a>
<p>
<a NAME="Added"></a>
<TABLE summary="Added Fields" WIDTH="100%">
<TR>
  <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.SCREEN_TIMEOUT_LONG"></A>
  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#SCREEN_TIMEOUT_LONG" target="_top"><code>SCREEN_TIMEOUT_LONG</code></A></nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.app.Notification.WearableExtender.SCREEN_TIMEOUT_SHORT"></A>
  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/app/Notification.WearableExtender.html#SCREEN_TIMEOUT_SHORT" target="_top"><code>SCREEN_TIMEOUT_SHORT</code></A></nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
      </div>	
      <div id="footer">
        <div id="copyright">
        Except as noted, this content is licensed under 
        <a href="//creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
        For details and restrictions, see the <a href="/license.html">Content License</a>.
        </div>
      <div id="footerlinks">
      <p>
        <a href="//www.android.com/terms.html">Site Terms of Service</a> -
        <a href="//www.android.com/privacy.html">Privacy Policy</a> -
        <a href="//www.android.com/branding.html">Brand Guidelines</a>
      </p>
    </div>
    </div> <!-- end footer -->
    </div><!-- end doc-content -->
    </div> <!-- end body-content --> 
<script src="//www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
  try {
    var pageTracker = _gat._getTracker("UA-5831155-1");
    pageTracker._setAllowAnchor(true);
    pageTracker._initData();
    pageTracker._trackPageview();
  } catch(e) {}
</script>
</BODY>
</HTML>
