#AndroidSoftUni

Questions

Udacity

86400

Steve jobs - Just ask

Connect to Internet

Message logging

display levels

Error War Info Debug Verbose
```java Log.x(String TAG, String message); ```

Logging

Resources

Menus

```java <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/new_game" android:icon="@drawable/ic_new_game" android:title="@string/new_game" android:showAsAction="ifRoom"/> <item android:id="@+id/help" android:icon="@drawable/ic_help" android:title="@string/help" /> </menu> ```

Github Demo Project

```java final static String GITHUB_BASE_URL = "https://api.github.com/search/repositories"; final static String PARAM_QUERY = "q"; final static String PARAM_SORT = "sort"; ```
## Uri.Builder ```java Uri builtUri = Uri.parse(GITHUB_BASE_URL) .buildUpon() .appendQueryParameter(PARAM_QUERY, githubSearchQuery) .appendQueryParameter(PARAM_SORT, sortBy) .build(); ```
## Android Uri ```java URL url = null; try { url = new URL(builtUri.toString()); } catch (MalformedURLException e) { e.printStackTrace(); } ```

App Permissions

Thread Basics

AsyncTask

Allows you to run a task on a background thread, while publishing results to the UI thread

onPostExecute doInBackground onProgressUpdate onPreExecute
> `onPreExecute()`, invoked on the UI thread before the task is executed. This step is normally used to setup the task, for instance by showing a progress bar in the user interface.
> `doInBackground(Params...)`, invoked on the background thread immediately after `onPreExecute()` finishes executing. This step is used to perform background computation that can take a long time. The parameters of the asynchronous task are passed to this step. The result of the computation must be returned by this step and will be passed back to the last step. This step can also use `publishProgress(Progress...)` to publish one or more units of progress. These values are published on the UI thread, in the `onProgressUpdate(Progress...)` step.
> `onProgressUpdate(Progress...)`, invoked on the UI thread after a call to `publishProgress(Progress...)`. The timing of the execution is undefined. This method is used to display any form of progress in the user interface while the background computation is still executing. For instance, it can be used to animate a progress bar or show logs in a text field.
> `onPostExecute(Result)`, invoked on the UI thread after the background computation finishes. The result of the background computation is passed to this step as a parameter.
Async Task
Async Task
Async Task
Async Task

Java Script Object Notation

```javascript { "name":"John", "age":31, "city":"New York", "credit_cards":[ { "number":"0000-0000-0000-0000" }, { "number":"0000-0000-0000-0001" } ] } ```
##### What would the following look like as JSON? ``` temp min = 11.34 max = 19.01 weather id = 801 condition = Clouds description = few clouds pressure = 1023.51 humidity = 87 ```
```javascript { "temp":{ "min":11.34, "max":19.01 }, "weather":{ "id":801, "condition":"Clouds", "description":"few clouds" }, "pressure":1023.51, "humidity":87 } ```
```java JSONObject weatherCondition = new JSONObject(weatherDataJSONString); // optString() // Returns the value mapped by name if it exists, // coercing it if necessary, // or the empty string if no such mapping exists. // Temp JSONObject temp = weatherCondition.getJSONObject("temp"); String min = temp.optString("min"); String max = temp.optString("max"); ```

Sandwich Demo Project