Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mContext = this;
- init();
- Log.v ("gaurav", "Thread is : " + Thread.currentThread().getName());
- Task1 task = new Task1();
- task.execute();
- }
- class Task1 extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- // TODO Auto-generated method stub
- Log.v ("gaurav", "Thread task 1 is : " + Thread.currentThread().getName());
- Task2 task = new Task2();
- task.execute();
- return null;
- }
- }
- class Task2 extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- // TODO Auto-generated method stub
- Log.v ("gaurav", "Thread task 2 is : " + Thread.currentThread().getName());
- Log.v ("gaurav", "Task 2 started");
- return null;
- }
- }
- > 08-07 09:46:25.564: V/gaurav(2100): Thread is : main 08-07
- > 09:46:25.564: V/gaurav(2100): Thread task 1 is : AsyncTask #3 08-07
- > 09:46:25.564: V/gaurav(2100): Thread task 2 is : AsyncTask #4 08-07
- > 09:46:25.564: V/gaurav(2100): Task 2 started
- class Task1 extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- // TODO Auto-generated method stub
- Log.v ("gaurav", "Thread task 1 is : " + Thread.currentThread().getName());
- Task2 task = new Task2();
- task.execute();
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- Log.v ("gaurav", "Log after sleeping");
- return null;
- }
- }
- class Task2 extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- // TODO Auto-generated method stub
- Log.v ("gaurav", "Thread task 2 is : " + Thread.currentThread().getName());
- Log.v ("gaurav", "Task 2 Started");
- return null;
- }
- }
- 08-07 06:13:44.208 3073-3073/testapplication V/gaurav﹕ Thread is : main
- 08-07 06:13:44.209 3073-3091/testapplication V/gaurav﹕ Thread task 1 is : AsyncTask #1
- 08-07 06:13:49.211 3073-3091/testapplication V/gaurav﹕ Log after sleeping
- 08-07 06:13:49.213 3073-3095/testapplication V/gaurav﹕ Thread task 2 is : AsyncTask #2
- 08-07 06:13:49.213 3073-3095/testapplication V/gaurav﹕ Task 2 Started
- public synchronized void execute(final Runnable r) {
- mTasks.offer(new Runnable() {
- public void run() {
- try {
- r.run();
- } finally {
- scheduleNext();
- }
- }
- });
- if (mActive == null) {
- scheduleNext();
- }
- }
- protected synchronized void scheduleNext() {
- if ((mActive = mTasks.poll()) != null) {
- THREAD_POOL_EXECUTOR.execute(mActive);
- }
- }
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main2);
- new Thread() {
- @Override
- public void run() {
- Task1 task = new Task1();
- task.execute();
- }
- }.start();
- }
- class Task1 extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- return null;
- }
- }
- 08-07 12:05:20.736 584-591/github.yaa110.testapplication E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-8
- java.lang.ExceptionInInitializerError
- at github.yaa110.testapplication.Main2Activity$1.run(Main2Activity.java:21)
- Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
- at android.os.Handler.<init>(Handler.java:121)
- at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
- at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
- at android.os.AsyncTask.<clinit>(AsyncTask.java:152)
- at github.yaa110.testapplication.Main2Activity$1.run(Main2Activity.java:21)
- private final static String TAG = "ThreadingAsyncTask";
- private ImageView mImageView;
- private ProgressBar mProgressBar;
- private int mDelay = 500;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mImageView = (ImageView) findViewById(R.id.imageView);;
- mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
- final Button button = (Button) findViewById(R.id.loadButton);
- button.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- new LoadIconTask().execute(R.drawable.cheetah);
- }
- });
- final Button otherButton = (Button) findViewById(R.id.otherButton);
- otherButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(MainActivity.this, "I'm Working",
- Toast.LENGTH_SHORT).show();
- }
- });
- }
- class LoadIconTask extends AsyncTask<Integer, Integer, Bitmap> {
- @Override
- protected void onPreExecute() {
- mProgressBar.setVisibility(ProgressBar.VISIBLE);
- }
- @Override
- protected Bitmap doInBackground(Integer... resId) {
- Bitmap tmp = BitmapFactory.decodeResource(getResources(), resId[0]);
- // simulating long-running operation
- for (int i = 1; i < 11; i++) {
- sleep();
- publishProgress(i * 10);
- }
- return tmp;
- }
- @Override
- protected void onProgressUpdate(Integer... values) {
- mProgressBar.setProgress(values[0]);
- }
- @Override
- protected void onPostExecute(Bitmap result) {
- mProgressBar.setVisibility(ProgressBar.INVISIBLE);
- mImageView.setImageBitmap(result);
- }
- private void sleep() {
- try {
- Thread.sleep(mDelay);
- } catch (InterruptedException e) {
- Log.e(TAG, e.toString());
- }
- }
- }
Add Comment
Please, Sign In to add comment