Skip to content

Commit

Permalink
Step 11, modify MyAsyncTaskImpl class to run the actual task.
Browse files Browse the repository at this point in the history
  • Loading branch information
legalimpurity committed Jul 14, 2018
1 parent 5a764cd commit dd965d2
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.legalimpurity.asynctaskwrittenfromscratch
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import java.lang.ref.WeakReference

class MainActivity : AppCompatActivity() {

Expand All @@ -13,7 +14,7 @@ class MainActivity : AppCompatActivity() {
AndroidAsyncTaskImpl(this).execute("http://www.mocky.io/v2/5b49ac2b3100005a008bc03b")
}
myAsyncTaskButton.setOnClickListener {
MyAsyncTaskImpl().execute()
MyAsyncTaskImpl(WeakReference(this),"http://www.mocky.io/v2/5b49ac2b3100005a008bc03b").execute()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,43 @@ package com.legalimpurity.asynctaskwrittenfromscratch

import android.util.Log
import com.legalimpurity.asynctaskwrittenfromscratch.MyAsyncTaskCode.MyAsyncTask
import kotlinx.android.synthetic.main.activity_main.*
import java.io.BufferedInputStream
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.Reader
import java.lang.ref.WeakReference
import java.net.HttpURLConnection
import java.net.URL

class MyAsyncTaskImpl : MyAsyncTask<String>()
class MyAsyncTaskImpl(private val weakReferenceMainActivity : WeakReference<MainActivity>, private val urlString:String) : MyAsyncTask<String>()
{
val LOG_TAG = "MyAsyncTask_Logs"

override fun doInBackground(): String {
Log.d(LOG_TAG,"doInBackgroundCalledOn: "+Thread.currentThread().name)
return ""
}
var returnString = "ERRORSTRING"
val url = URL(urlString)
val urlConnection = url.openConnection() as HttpURLConnection
try {
val inputStream = BufferedInputStream(urlConnection.inputStream)

val bufferedReader = BufferedReader(InputStreamReader(inputStream) as Reader?)
returnString = bufferedReader.readLine()

}finally {
urlConnection.disconnect()
}
return returnString }

override fun onPreExecute() {
Log.d(LOG_TAG,"onPreExecuteCalledOn: "+Thread.currentThread().name)
}

override fun onPostExecute(valueFromDoInBackground: String) {
Log.d(LOG_TAG,"onPostExecuteCalledOn: "+Thread.currentThread().name)
Log.d(LOG_TAG, "taskOutput: $valueFromDoInBackground")
weakReferenceMainActivity.get()?.asyncTaskOutputTextView?.text = valueFromDoInBackground
}

}

0 comments on commit dd965d2

Please sign in to comment.