Guest User

Untitled

a guest
Apr 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.88 KB | None | 0 0
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.activity_main);
  5. mContext = this;
  6. init();
  7. Log.v ("gaurav", "Thread is : " + Thread.currentThread().getName());
  8. Task1 task = new Task1();
  9. task.execute();
  10. }
  11.  
  12. class Task1 extends AsyncTask {
  13. @Override
  14. protected Object doInBackground(Object... params) {
  15. // TODO Auto-generated method stub
  16. Log.v ("gaurav", "Thread task 1 is : " + Thread.currentThread().getName());
  17.  
  18. Task2 task = new Task2();
  19.  
  20. task.execute();
  21. return null;
  22. }
  23. }
  24.  
  25. class Task2 extends AsyncTask {
  26. @Override
  27. protected Object doInBackground(Object... params) {
  28. // TODO Auto-generated method stub
  29. Log.v ("gaurav", "Thread task 2 is : " + Thread.currentThread().getName());
  30.  
  31. Log.v ("gaurav", "Task 2 started");
  32. return null;
  33. }
  34. }
  35.  
  36. > 08-07 09:46:25.564: V/gaurav(2100): Thread is : main 08-07
  37. > 09:46:25.564: V/gaurav(2100): Thread task 1 is : AsyncTask #3 08-07
  38. > 09:46:25.564: V/gaurav(2100): Thread task 2 is : AsyncTask #4 08-07
  39. > 09:46:25.564: V/gaurav(2100): Task 2 started
  40.  
  41. class Task1 extends AsyncTask {
  42. @Override
  43. protected Object doInBackground(Object... params) {
  44. // TODO Auto-generated method stub
  45. Log.v ("gaurav", "Thread task 1 is : " + Thread.currentThread().getName());
  46.  
  47. Task2 task = new Task2();
  48. task.execute();
  49.  
  50. try {
  51. Thread.sleep(5000);
  52. } catch (InterruptedException e) {
  53. e.printStackTrace();
  54. }
  55.  
  56. Log.v ("gaurav", "Log after sleeping");
  57.  
  58. return null;
  59. }
  60. }
  61.  
  62. class Task2 extends AsyncTask {
  63. @Override
  64. protected Object doInBackground(Object... params) {
  65. // TODO Auto-generated method stub
  66. Log.v ("gaurav", "Thread task 2 is : " + Thread.currentThread().getName());
  67.  
  68. Log.v ("gaurav", "Task 2 Started");
  69. return null;
  70. }
  71. }
  72.  
  73. 08-07 06:13:44.208 3073-3073/testapplication V/gaurav﹕ Thread is : main
  74. 08-07 06:13:44.209 3073-3091/testapplication V/gaurav﹕ Thread task 1 is : AsyncTask #1
  75. 08-07 06:13:49.211 3073-3091/testapplication V/gaurav﹕ Log after sleeping
  76. 08-07 06:13:49.213 3073-3095/testapplication V/gaurav﹕ Thread task 2 is : AsyncTask #2
  77. 08-07 06:13:49.213 3073-3095/testapplication V/gaurav﹕ Task 2 Started
  78.  
  79. public synchronized void execute(final Runnable r) {
  80. mTasks.offer(new Runnable() {
  81. public void run() {
  82. try {
  83. r.run();
  84. } finally {
  85. scheduleNext();
  86. }
  87. }
  88. });
  89. if (mActive == null) {
  90. scheduleNext();
  91. }
  92. }
  93.  
  94. protected synchronized void scheduleNext() {
  95. if ((mActive = mTasks.poll()) != null) {
  96. THREAD_POOL_EXECUTOR.execute(mActive);
  97. }
  98. }
  99.  
  100. protected void onCreate(Bundle savedInstanceState) {
  101. super.onCreate(savedInstanceState);
  102. setContentView(R.layout.activity_main2);
  103.  
  104. new Thread() {
  105. @Override
  106. public void run() {
  107. Task1 task = new Task1();
  108. task.execute();
  109. }
  110. }.start();
  111. }
  112.  
  113. class Task1 extends AsyncTask {
  114. @Override
  115. protected Object doInBackground(Object... params) {
  116. return null;
  117. }
  118. }
  119.  
  120. 08-07 12:05:20.736 584-591/github.yaa110.testapplication E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-8
  121. java.lang.ExceptionInInitializerError
  122. at github.yaa110.testapplication.Main2Activity$1.run(Main2Activity.java:21)
  123. Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
  124. at android.os.Handler.<init>(Handler.java:121)
  125. at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
  126. at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
  127. at android.os.AsyncTask.<clinit>(AsyncTask.java:152)
  128.             at github.yaa110.testapplication.Main2Activity$1.run(Main2Activity.java:21)
  129.  
  130. private final static String TAG = "ThreadingAsyncTask";
  131. private ImageView mImageView;
  132. private ProgressBar mProgressBar;
  133. private int mDelay = 500;
  134.  
  135. protected void onCreate(Bundle savedInstanceState) {
  136. super.onCreate(savedInstanceState);
  137. setContentView(R.layout.activity_main);
  138. mImageView = (ImageView) findViewById(R.id.imageView);;
  139. mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
  140.  
  141. final Button button = (Button) findViewById(R.id.loadButton);
  142. button.setOnClickListener(new OnClickListener() {
  143. public void onClick(View v) {
  144. new LoadIconTask().execute(R.drawable.cheetah);
  145. }
  146. });
  147. final Button otherButton = (Button) findViewById(R.id.otherButton);
  148. otherButton.setOnClickListener(new OnClickListener() {
  149. @Override
  150. public void onClick(View v) {
  151. Toast.makeText(MainActivity.this, "I'm Working",
  152. Toast.LENGTH_SHORT).show();
  153. }
  154. });
  155. }
  156.  
  157.  
  158. class LoadIconTask extends AsyncTask<Integer, Integer, Bitmap> {
  159. @Override
  160. protected void onPreExecute() {
  161. mProgressBar.setVisibility(ProgressBar.VISIBLE);
  162. }
  163. @Override
  164. protected Bitmap doInBackground(Integer... resId) {
  165. Bitmap tmp = BitmapFactory.decodeResource(getResources(), resId[0]);
  166. // simulating long-running operation
  167. for (int i = 1; i < 11; i++) {
  168. sleep();
  169. publishProgress(i * 10);
  170. }
  171. return tmp;
  172. }
  173. @Override
  174. protected void onProgressUpdate(Integer... values) {
  175. mProgressBar.setProgress(values[0]);
  176. }
  177. @Override
  178. protected void onPostExecute(Bitmap result) {
  179. mProgressBar.setVisibility(ProgressBar.INVISIBLE);
  180. mImageView.setImageBitmap(result);
  181. }
  182. private void sleep() {
  183. try {
  184. Thread.sleep(mDelay);
  185. } catch (InterruptedException e) {
  186. Log.e(TAG, e.toString());
  187. }
  188. }
  189. }
Add Comment
Please, Sign In to add comment