<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_181) on Mon Feb 03 10:59:13 CST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>接口 org.apache.livy.JobHandle.Listener的使用 (Livy 0.7.0-incubating JavaDoc)</title>
<meta name="date" content="2020-02-03">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="\u63A5\u53E3 org.apache.livy.JobHandle.Listener\u7684\u4F7F\u7528 (Livy 0.7.0-incubating JavaDoc)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../org/apache/livy/package-summary.html">程序包</a></li>
<li><a href="../../../../org/apache/livy/JobHandle.Listener.html" title="org.apache.livy中的接口">类</a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html">树</a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/livy/class-use/JobHandle.Listener.html" target="_top">框架</a></li>
<li><a href="JobHandle.Listener.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="接口的使用 org.apache.livy.JobHandle.Listener" class="title">接口的使用<br>org.apache.livy.JobHandle.Listener</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="org.apache.livy">
<!--   -->
</a>
<h3><a href="../../../../org/apache/livy/package-summary.html">org.apache.livy</a>中<a href="../../../../org/apache/livy/JobHandle.Listener.html" title="org.apache.livy中的接口">JobHandle.Listener</a>的使用</h3>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="使用表, 列表方法和解释">
<caption><span>参数类型为<a href="../../../../org/apache/livy/JobHandle.Listener.html" title="org.apache.livy中的接口">JobHandle.Listener</a>的<a href="../../../../org/apache/livy/package-summary.html">org.apache.livy</a>中的方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">JobHandle.</span><code><span class="memberNameLink"><a href="../../../../org/apache/livy/JobHandle.html#addListener-org.apache.livy.JobHandle.Listener-">addListener</a></span>(<a href="../../../../org/apache/livy/JobHandle.Listener.html" title="org.apache.livy中的接口">JobHandle.Listener</a>&lt;<a href="../../../../org/apache/livy/JobHandle.html" title="JobHandle中的类型参数">T</a>&gt;&nbsp;l)</code>
<div class="block">Add a listener to the job handle.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../org/apache/livy/package-summary.html">程序包</a></li>
<li><a href="../../../../org/apache/livy/JobHandle.Listener.html" title="org.apache.livy中的接口">类</a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html">树</a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/livy/class-use/JobHandle.Listener.html" target="_top">框架</a></li>
<li><a href="JobHandle.Listener.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
