我对Android AsyncTask有一些问题.有一个Activity包含一些TextView按钮和图片.当用户输入此活动时,我启动一个asynctask来检查用户是否可以从活动开始(直到任务没有完成按钮未激活).然后我想开始另一个asyntask来获取图片.所以我做了一个内部课:
AsyncTask<String, Void, JSONObject>() authTask = new AsyncTask<String, Void, JSONObject>() {
@Override
protected JSONObject doInBackground(String... params) {
//call the rest api
}
@Override
protected void onPostExecute(JSONObject result) {
// check the result
// and make another asynctask
AsyncTask<String, Void, Bitmap> imageTask = new Async.... {
// get image
}
imageTask.execute();
}
}
Run Code Online (Sandbox Code Playgroud)
我authTask.execute(); 从UI线程调用
.
我对此有一种不好的感觉,特别是它看起来不起作用(它好几次但是突然它"冻结":只是挂起并且进度条正在旋转也没有例外.没有任何反应,按钮也不会激活.)还有另一种获取信息的方法,当它完成后立即启动另一项任务?
UDPATE:我使用的是api级别10.在authTask中,我获得了启动imageTask(一些id)所需的一些信息,所以我必须连续调用这些任务.在api 10级这是可能的吗?
提前致谢!
彼得
首先:我使用GlassFish 3.1 + Eclipse Java EE靛蓝。我想用javaee测试缓存解决方案,所以我做了一个虚拟应用程序。我有一个生成的大型数据库,并且列出,搜索,修改等一些数据。为此,我编写了一些基本的servlet,并使用GET参数进行调用。例如:/ app / list?page = product&pageSize = 100 ListServlet带有注释
@WebServlet({ "/ListServlet", "/list" })
Run Code Online (Sandbox Code Playgroud)
而且它就像一种魅力,我可以同时使用两个网址。因此,我需要一些其他的servlet(用于搜索,修改)。我创建了它们并以相同的方式注释。但是,当我键入url http://localhost/app/modify或/ app / search?id = 1时,出现错误404。我尝试编写一个非常虚拟的helloservlet,它打印了一个hello world消息,但没有用:错误404。我重新启动了玻璃鱼服务器和计算机,但没有帮助。
有什么问题?我错过了什么?
编辑:servlet是相同的程序包使用相同的导入...
我在javaee6和jsf2中开发了一个小应用程序.我想要一个没有按钮的搜索字段(只需键入并按Enter键并给出结果).我在bean中有一个搜索方法:
public Book searchByTitle(String title) {
this.book = bookFacade.searchByTitle(title);
return book;
}
Run Code Online (Sandbox Code Playgroud)
我想通过jsf页面调用此方法(带参数?可能吗?),所以我尝试这样做:
<h:form>
<h:inputText id="search" value="#{bookBean.searchString}"></h:inputText>
<h:commandButton value="Search by title" action="#{bookBean.searchByTitle}">
<f:ajax execute="search" render="output"></f:ajax>
</h:commandButton>
<h2><h:outputText id="output" value="#{bookBean.book.title}"></h:outputText>
</h2>
</h:form>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.在jsf2 xhtml页面中执行搜索字段的正确方法是什么?
编辑:我试图使用/不带参数调用searchByTitle函数.
提前致谢!
我想知道是否可以使用位操作根据位掩码合并两个位域?例如,我有两个值,一个位掩码:
char mask = 0x29; // 0010 1001
char a = 0x9; // 0000 1001 original value
char b = 0xE8; // 1110 1000 modified value
Run Code Online (Sandbox Code Playgroud)
我想根据位掩码将b中的位设置为a的值.只有3位会受到影响.
char val = 0xC9; // 1100 1001 value
Run Code Online (Sandbox Code Playgroud)
那么我怎么能只做位操作呢?
提前致谢.
我在Scala中很新,如果有这样的事情,我试图用Scala方式更改多维数组中的值:)
让我们看看问题:
val table = Array.fill(5, 5){1}
Run Code Online (Sandbox Code Playgroud)
我试图每1到5改变一次
for (i <- 0 until table.length) {
for (j <- 0 until table(i).length) {
table(i)(j) = 5
}
}
Run Code Online (Sandbox Code Playgroud)
但我认为会有其他(更多功能方式)做同样的事情.
谢谢!