android子线程会自动销毁吗,android如何停止或销毁一个线程?

我知道停止方法已被弃用,我现在使用销毁方法,但我得到这个错误:

11-09 11:42:28.740: E/AndroidRuntime(1538): FATAL EXCEPTION: main

11-09 11:42:28.740: E/AndroidRuntime(1538): java.lang.NoSuchMethodError: Thread.destroy()

11-09 11:42:28.740: E/AndroidRuntime(1538): at java.lang.Thread.destroy(Thread.java:600)

11-09 11:42:28.740: E/AndroidRuntime(1538): at com.rathbones.src.NewslettersActivity.onKeyDown(NewslettersActivity.java:144)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.view.KeyEvent.dispatch(KeyEvent.java:1037)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.app.Activity.dispatchKeyEvent(Activity.java:2068)

11-09 11:42:28.740: E/AndroidRuntime(1538): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.os.Handler.dispatchMessage(Handler.java:99)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.os.Looper.loop(Looper.java:123)

11-09 11:42:28.740: E/AndroidRuntime(1538): at android.app.ActivityThread.main(ActivityThread.java:4627)

11-09 11:42:28.740: E/AndroidRuntime(1538): at java.lang.reflect.Method.invokeNative(Native Method)

11-09 11:42:28.740: E/AndroidRuntime(1538): at java.lang.reflect.Method.invoke(Method.java:521)

11-09 11:42:28.740: E/AndroidRuntime(1538): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

11-09 11:42:28.740: E/AndroidRuntime(1538): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

11-09 11:42:28.740: E/AndroidRuntime(1538): at dalvik.system.NativeStart.main(Native Method)

11-09 11:42:28.760: W/ActivityManager(59): Force finishing activity com.rathbones.src/.NewslettersActivity但是应用程序没有崩溃,只是我在logcat中遇到了这个错误。

其实我有一个时事通讯模块,它使用户能够查看PDF文件,当他们按下查看按钮时,它会打开一个进度条,同时如果有人按下后退按钮,它应该停止线程并优雅地退出。它这样做,但在日志猫我得到上述错误。这里是代码片段,它导致了这个错误:

private void viewOnline() {

if (currentNewsletter == null) {

Log.e(Constants.APP_NAME, "No newsletter selected");

return;

}

final ProgressDialog d = new ProgressDialog(this);

d.setMessage("Downloading...");

d.show();

final Context context = getApplicationContext();

t = new Thread(new Runnable() {

public void run() {

String fileName = currentNewsletter.mFilename;

Log.d(Constants.APP_NAME, "Downloading/showing: " + fileName);

final File file = Utilities.getFileFromURL(context, currentNewsletter.mUrl, currentNewsletter.mExpectedSizeInBytes, fileName, false);

d.dismiss();

// Now we can show the file

viewPDF(file);

}

});

t.start();

// Utilities.List(getApplicationContext().getFilesDir().getPath());

// Utilities.List(getApplicationContext().getDir("files", Context.MODE_WORLD_WRITEABLE).getAbsolutePath());

// Utilities.DeleteDirectory(getApplicationContext().getDir("files", Context.MODE_WORLD_WRITEABLE).getAbsolutePath());

}

private void viewPDF(File file) {

//DEBUG DEBUG DEBUG

//Log.d(Constants.APP_NAME, "ViewPDF: showing " + file.getName());

//Log.d(Constants.APP_NAME, "Path: " + file.getPath());

//Log.d(Constants.APP_NAME, "Exists: " + file.exists());

//Log.d(Constants.APP_NAME, "Length: " + file.length());

//DEBUG DEBUG DEBUG

// Now it's all safe and sound and local, open it

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(file), "application/pdf");

try {

startActivity(intent);

} catch (Exception e) {

Toast.makeText(this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show();

}

}

@Override

protected void onStop() {

finish();

super.onStop();

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

t.destroy();

Intent i = new Intent(NewslettersActivity.this,MainMenuActivity.class);

startActivity(i);

finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值