我在我的一个活动中实现了AsyncTask:
performBackgroundTask asyncTask = new performBackgroundTask();
asyncTask.execute();
Run Code Online (Sandbox Code Playgroud)
现在,我需要实现"取消"按钮功能,所以我必须停止执行正在运行的任务.我不知道如何停止运行任务(后台任务).
所以请建议我,如何有力地取消AsyncTask?
我找到Cancel()了相同的方法,但我发现调用cancel(boolean mayInterruptIfRunning)不一定会停止执行后台进程.似乎发生的一切是AsyncTask将执行onCancelled(),并且在完成时不会运行onPostExecute().
我想AsyncTask从另一个AsyncTask线程中停止一个线程.我试图
new AsyncTask.cancel(true)阻止后台进程,但它没有停止.
有人可以帮我吗?
我想创建一个CustomButton具有预定义的onClick.事实上,我的目标是做同样的工作
CustomButton mButton = getViewById(..);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
show_something()
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将其嵌入Listener从Button继承的CustomButton对象?我想要的是CustomButton在我的布局XML文件中创建一个,而不必在我的活动中提到这个按钮,这将给出:
main.xml中:
<LinearLayout xmlns:"...">
<com.mypackage.view.CustomButton
(attributes)/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
CustomButton.java:
class CustomButton extends Button implements... {
@Override
OnClick (or something like that, that's the core of my question, what to put here)
}
Run Code Online (Sandbox Code Playgroud)
myActivity.java
public class myActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
} …Run Code Online (Sandbox Code Playgroud)