Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. package com.example.praktikum2;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.app.Service;
  5. import android.content.Intent;
  6. import android.os.AsyncTask;
  7. import android.os.Handler;
  8. import android.os.IBinder;
  9. import android.os.Message;
  10. import android.util.Log;
  11.  
  12. public class MyService5 extends Service {
  13. boolean isRunning = true;
  14. private Handler handler = new Handler() {
  15. @Override
  16. public void handleMessage(Message msg) {
  17. super.handleMessage(msg);
  18. Log.e("MyService5Async-Handler", "Handler got from MyService5Async: "
  19. + (String)msg.obj);
  20.  
  21. }
  22. };
  23. @Override
  24. public IBinder onBind(Intent arg0) {
  25. return null;
  26. }
  27. @Override
  28. public void onCreate() {
  29. super.onCreate();
  30. }
  31.  
  32. @SuppressLint("LongLogTag")
  33. @Override
  34. public void onStart(Intent intent, int startId) {
  35. Log.e ("<<MyService5Async-onStart>>", "I am alive-5Async!");
  36. // we place the slow work of the service in an AsynTask
  37. // so the response we send our caller who run
  38. // a "startService(...)" method gets a quick OK from us.
  39. new ComputeFibonacciRecursivelyTask().execute(20, 50);
  40. }//onStart
  41. // this recursive evaluation of Fibonacci numbers is exponential O(2^n)
  42. // for large n values it should be very time-consuming!
  43. public Integer fibonacci(Integer n){
  44. if ( n==0 || n==1 )
  45. return 1;
  46. else
  47. return fibonacci(n-1) + fibonacci(n-2);
  48. }
  49. @SuppressLint("LongLogTag")
  50. @Override
  51. public void onDestroy() {
  52. //super.onDestroy();
  53. Log.e ("<<MyService5Async-onDestroy>>", "I am dead-5-Async");
  54. isRunning = false;
  55. }//onDestroy
  56.  
  57. public class ComputeFibonacciRecursivelyTask extends AsyncTask<
  58.  
  59. Integer, Integer, Integer > {
  60.  
  61. @Override
  62. protected Integer doInBackground(Integer... params) {
  63. for (int i=params[0]; i<params[1]; i++){
  64. Integer fibn = fibonacci(i);
  65. publishProgress(i, fibn);
  66. }
  67. return null;
  68. }
  69. @Override
  70. protected void onProgressUpdate(Integer... values) {
  71. super.onProgressUpdate(values);
  72. Intent intentFilter5 = new Intent("matos.action.GOSERVICE5");
  73. String data = "dataItem-5-fibonacci-AsyncTask"
  74. + values[0] + ": " + values[1];
  75.  
  76. intentFilter5.putExtra("MyService5DataItem", data);
  77. sendBroadcast(intentFilter5);
  78. // (next id not really needed!!! - we did the broadcasting already)
  79. Message msg = handler.obtainMessage(5, data);
  80. handler.sendMessage(msg);
  81. }
  82. }// ComputeFibonacciRecursivelyTask
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement