我尝试在每次创建活动时运行以下线程。它第一次工作,但如果我按下后退按钮并尝试再次导航到活动,它总是崩溃第二次。我怎样才能确保这个线程每次都运行成功呢?
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 5; i++) {
try {
URL url = new URL(priceRangeLargeImageString[i]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
largeImage.add(bitmap);
} catch (IOException e) {
e.printStackTrace();
Log.e("Exception", e.getLocalizedMessage());
}
}
latch.countDown();
}
}).start();
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
addtoView();
if (convertView == null) {
convertView = inflater.inflate(R.layout.forlist, parent, false);
}
// parent.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
TextView address = (TextView) convertView.findViewById(R.id.Address);
address.setText(flowername.get(position));
TextView price = (TextView) convertView.findViewById(R.id.price);
price.setText("$" + flowerprice.get(position), TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) price.getText();
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, price.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView discount = (TextView) convertView.findViewById(R.id.discountPrice);
discountedPrice = Double.parseDouble(flowerprice.get(position)) / 1.15;
String priceString = new DecimalFormat("$##.00").format(discountedPrice);
discount.setText(priceString);
TextView size = (TextView) convertView.findViewById(R.id.sizes);
size.setText(flowersize.get(position));
final ImageView image = (ImageView) convertView.findViewById(R.id.flowerImage);
image.setImageBitmap(flowerimage.get(position));
return convertView;
}
如果导航回已创建的活动,则不会调用onCreate。
尝试将代码移动到onResume()中:
@Override
protected void onResume(){
super.onResume();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 5; i++) {
try {
URL url = new URL(priceRangeLargeImageString[i]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
largeImage.add(bitmap);
} catch (IOException e) {
e.printStackTrace();
Log.e("Exception", e.getLocalizedMessage());
}
}
latch.countDown();
}
}).start();
}
Firebase崩溃报告捕获的异常: 异常java.lang.运行时异常:无法启动活动ComponentInfo{com.talmir.mickinet/com.talmir.mickinet.activities.HomeActivity}:android.content.res.资源$NotFound异常:资源ID 0x7f080058android.app.ActivityThread.pe
问题内容: 我以为这是一个简单的任务,但是我很惊讶没有找到答案。 让我澄清一下: 我不想手动打电话。实际上,我什至没有使用命令行来查看LogCat,所以我认为这是不可能的(编辑: 实际上,是通过在单独的命令行中运行命令来实现的,但是我没有想要这样做) 。我正在使用Eclipse查看LogCat。 我不想每次都单击按钮。那就是我现在正在做的。 我确实是 通过编程方式或通过Eclipse的“运行/调试
我有以下ThreadPoolTaskExecator2配置 在我的公共类AdminService中,我有两个方法。 void triggerJob() 布尔执行sql(字符串sql) 如何将ThreadPoolTaskExecutor插入triggerJob方法,以便在第一个方法中调用executeSql时创建新线程。 在triggerjob中,我有一个基于条件调用executeSql的循环。 我
我使用taskscheduleR来运行我的R代码。我必须运行一次的那个运行得很好,但是其他的(每小时、每周、每天等等)都不行。)工作,尽管其余报告“成功:已成功创建计划任务“test2” 这是我用来运行一次的代码(工作正常): 这是我用来运行WEEKLY的代码(不起作用): 在这种情况下没有生成日志,看起来任务从未计划过。 类似于每小时(不起作用):库(taskscheduleR)myscript
本文向大家介绍ajax的定时调用每5秒调用一次,包括了ajax的定时调用每5秒调用一次的使用技巧和注意事项,需要的朋友参考一下
问题内容: 我是Java新手。有人可以帮我为什么不调用Run方法。提前致谢。 问题答案: 您需要将的实例传递给构造函数,以告诉新线程运行什么: (这是不幸的是,类已经以各种方式被设计得不好。这将是更有益的,如果它 不 具有方法本身,但 没有 强迫你传递到构造函数,然后你会发现在编译的问题-时间。)