我现在编辑了...我检查布局和初始化但仍然是相同的错误..它可能是日食错误?
public class ActivityOwner extends Activity implements OnClickListener {
EditText ownerUser, ownerPass;
private Button btnLogin;
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
private static final String OWNER_LOGIN_URL = "http://192.168.2.5/idot/owner_login.php";
// ---JSON element ids from response of php script
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_owner);
ownerUser = (EditText) findViewById(R.id.owner_login_username);
ownerPass = (EditText) findViewById(R.id.owner_login_password);
TextView tvLinkToRegister = (TextView) findViewById(R.id.link_to_register);
tvLinkToRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void …Run Code Online (Sandbox Code Playgroud) 当我运行我的应用程序时,onPostExecute似乎没有被调用.它不像应该的那样填充UI.此外,打开DoInBackground通过for循环的任何日志消息:
for (int i = 0; i < businesses.length(); i++) { }
不显示在该特定for循环中排除日志消息.因此,例如,第二个for循环for(int j = 0; j < businessNames.size(); j++) { }中的日志消息由于某种原因未显示.这是时间问题还是我错过了什么?
但总而言之,我的UI onPostExecute并没有被击中(据我所知).
这是我的代码
public class CoffeeResultActivity extends Activity{
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> businessNames = new ArrayList<String>();
List<String> businessInfo = new ArrayList<String>();
HashMap<String, List<String>> listDataChild = new HashMap<String, List<String>>();
private int lastExpandedPosition = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expListView = (ExpandableListView) findViewById(R.id.lvExp);
//Calling AsyncTask
new RetreiveSearchResults().execute("coffee");
// …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,需要在一个活动中一个接一个地多次调用一个asynctask函数,如下所示:
当我执行这种类型的代码时,所有任务大致并行运行,但我需要这个任务一个接一个地运行.如何在不调用onPostExecute()中的下一个任务的情况下执行此操作
我有一些问题.
我有两种方法,一种用Api 11及以上调用,另一种用于旧api.
我的项目有一些设置:
项目构建目标 - Google API 2.3.3
清单文件:
uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="18"
Run Code Online (Sandbox Code Playgroud)
我的代码:
abstract class DoAsyncRequest {
protected abstract void DoRequest(Connection conn) throws Exception;
}
class DoAsyncRequestLegacy extends DoAsyncRequest {
protected void DoRequest(Connection conn) throws Exception{
new FetchTask(conn).execute();// FOR OLD API
}
}
@TargetApi(11) class DoAsyncRequest_SDK11 extends DoAsyncRequest {
protected void DoRequest(Connection conn) throws Exception{
new FetchTask(conn).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null); //FOR NEW API, but compiller says, that THREAD_POOL_EXECUTOR cannot be resolved or is not a field
}
}
Run Code Online (Sandbox Code Playgroud)
最好的祝福.
我在我的活动背景中使用音乐.但是当我试图取消它时它不起作用.音乐一直在持续运行,直到它完成.以下是代码:
public class xx extends Activity
{ BackgroundSound mBackgroundSound = new BackgroundSound();
@Override
protected void onCreate(Bundle savedInstanceState)
{ ....
}
@Override
protected void onResume()
{
super.onResume();
mBackgroundSound.execute();
}
@Override
protected void onPause()
{
super.onPause();
mBackgroundSound.cancel(true);
}
Run Code Online (Sandbox Code Playgroud)
和选项菜单选择:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mBackgroundSound.cancel(true);
NavUtils.navigateUpFromSameTask(this);
return true;
case R.id.menu_Add:
{ mBackgroundSound.cancel(true);
Intent intent = new Intent(xx.this,yy.class);
intent.putExtra("flag", "add");
intent.putExtra("AddObj", "mm");
startActivity(intent);
break;
}
case R.id.menu_list_quote:
{
mBackgroundSound.cancel(true);
Intent intent = new Intent(xx.this,zz.class);
intent.putExtra("Obj", "nn");
startActivity(intent); …Run Code Online (Sandbox Code Playgroud) 我有这种代码的安静,从一个URL获取一些xml数据.
它确实正常工作,但问题是,当它下载并解析xml时,UI会冻结,这对用户来说可能是一个问题.
这是班级
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kategoria);
// getting intent data
Intent in = getIntent();
String cat_name = in.getStringExtra("kategoria");
//Update Textview
TextView kategoriatw = (TextView)findViewById(R.id.name_of_cat);
kategoriatw.setText(cat_name);
// Kategoro URL
String catUrl = "http://sample.com/xmldata.xml";
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
//MOTHERLAJME MULTIDIMENSIONAl
final List<HashMap<String, String>> MotherContainer= new ArrayList<HashMap<String, String>>();
try{
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(catUrl); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element
//ALL
NodeList forecastW = doc.getElementsByTagName("newsitem");
for …Run Code Online (Sandbox Code Playgroud) 这是我写的第一个使用AsyncTask练习的程序.我没有解决这个错误,我试图做一些建议的修复,但这带来了前一行的错误.所以如果有人能告诉我这里有什么问题以及如何解决这个问题,我将感激不尽.
package com.example.concurrency;
import java.io.InputStream;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
public class UsingAsyncTask extends Activity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.using_asynctask);
String spec="http://www.google.com/imgres?imgurl=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2F7%2F7a%2FBasketball.png&imgrefurl=http%3A%2F%2Fcommons.wikimedia.org%2Fwiki%2FFile%3ABasketball.png&h=340&w=340&tbnid=EJmjEDyJzrhAuM%3A&zoom=1&docid=C_hn8nOgsGmuwM&hl=en&ei=Q0o2U93LNcaIygH4mICQBQ&tbm=isch&ved=0CHwQhBwwBg&iact=rc&dur=3875&page=1&start=0&ndsp=14";
try {URL params= new URL(spec);} catch(Exception e) {}
Bitmap result;
new MyTask().execute(params);// ERROR:***** params cannot be resolved to a variable*************
imageView= new ImageView(null);
}
private class MyTask extends AsyncTask<URL, Void, Bitmap> {
private Bitmap loadImageFromNetwork(String url){
try {
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(url).getContent()); …Run Code Online (Sandbox Code Playgroud) 我试图从一个Android活动(一个简单的登录表单)做一个http请求/响应,但在我完成代码后它给了我一个错误,因为我必须把它放在一个线程,我不熟悉异步任务但我我试图实现它但是,现在当我运行程序并点击提交时,logcat给了我类似的东西
FATAL EXCEPTION: AsyncTask #1
Process: com.example.httpgetandroidexample, PID: 1131
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6094)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:824)
at android.view.View.requestLayout(View.java:16431)
at android.view.View.requestLayout(View.java:16431)
at android.view.View.requestLayout(View.java:16431)
at android.view.View.requestLayout(View.java:16431)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:352)
at android.view.View.requestLayout(View.java:16431)
at android.widget.TextView.checkForRelayout(TextView.java:6600)
at android.widget.TextView.setText(TextView.java:3813)
at android.widget.TextView.setText(TextView.java:3671)
at android.widget.TextView.setText(TextView.java:3646)
at com.example.httpgetandroidexample.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:87)
at com.example.httpgetandroidexample.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237) …Run Code Online (Sandbox Code Playgroud) 我一直在尝试连接到服务器来检索一些数据.我想到的第一件事就是创建一个异步连接的线程.
new Thread(new Runnable() {
@Override
public void run() {
// retrieve data
}
}).run();
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,我创建的线程与UI线程同步,我得到了一个网络异常,所以我最终使用了AsyncTask.你们知道什么可能导致线程与UI线程异步工作吗?我的课程延伸到一个片段.
我在我的文件中放了一个名为RetrieveHttpextends 的子类AsycTask,MainActivity它应该在后台进行一些处理.
Activity应该如下工作:显示UI,启动后台任务(检索URL,将内容解析为String数组),当AsyncTask完成时,它应该在UI上创建Toast.
不幸的是,UI正在等待该doInBackground()方法完成的任务.只有在AsyncTask完成后,才会显示用户界面,用户同时只看到黑屏.你能给我一些建议吗,我的代码出了什么问题?
public class Splashscreen extends Activity implements OnClickListener {
private String questions[];
//HTTP-Downloader to InputStream
private RetrieveHttp myHttp = new RetrieveHttp();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hauptmenue);
//..implementing some listeners here, referencing GUI elements
try {
questions = myHttp.execute("http://myurl.de").get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public …Run Code Online (Sandbox Code Playgroud)