Successfully reported this slideshow.
Your SlideShare is downloading. ×

Mobile Software Engineering Crash Course - C04 Android Cont.

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 25 Ad

More Related Content

Slideshows for you (20)

Similar to Mobile Software Engineering Crash Course - C04 Android Cont. (20)

Advertisement

More from Mohammad Shaker (20)

Recently uploaded (20)

Advertisement

Mobile Software Engineering Crash Course - C04 Android Cont.

  1. 1. Mobile Software Engineering L04 – Android Cont. Mohammad Shaker FIT of Damascus - AI dept. MohammadShakerGtr@gmail.com Mobile SE – August 2012
  2. 2. Activities Starting Another Activity
  3. 3. Intent an object that provides runtime binding between separate components (such as two activities)
  4. 4. Intent carry a collection of various data types as key-value pairs called extras through putExtra()
  5. 5. It’s a good practice.. to define keys for intent extras using your app's package name as a prefix. This ensures they are unique, in case your app interacts with other apps.
  6. 6. Starting Another Activity http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent Project Attached
  7. 7. Starting Another Activity public final static String EXTRA_MESSAGE = "com.example.intetsample.MESSAGE"; public void sendMessage(View view) { Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.editText1); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent); }
  8. 8. AndroidManifest.xml
  9. 9. AndroidManifest.xml <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".DisplayMessageActivity" android:label="@string/title_activity_display_message" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.intetsample.MainActivity" /> </activity> </application>
  10. 10. Managing the Activity Life Cycle
  11. 11. Destroy the activity onDestroy()
  12. 12. Destroy the activity
  13. 13. onPasue() @Override public void onPause() { // Always call the superclass method first super.onPause(); // Release the Camera because // we don't need it when paused // and other activities might need to use it. if (mCamera != null) { mCamera.release() mCamera = null; } }
  14. 14. onResume() @Override public void onResume() { // Always call the superclass method first super.onResume(); // Get the Camera instance as the activity // achieves full user focus if (mCamera == null) { // Local method to handle camera init initializeCamera(); } }
  15. 15. Recreating activity onSaveInstanceState
  16. 16. Storage – Database Sqlite3
  17. 17. Draggable stick project sample attached
  18. 18. OpenGL ES
  19. 19. How can we animate?
  20. 20. 'Must Override a Superclass Method' Errors after importing a project into Eclipse Problem http://stackoverflow.com/questions/1678122/must-override-a-superclass- method-errors-after-importing-a-project-into-eclips
  21. 21. @Override public boolean onTouchEvent(MotionEvent e) { float x = e.getX(); float y = e.getY(); switch (e.getAction()) { case MotionEvent.ACTION_MOVE: float dx = x - mPreviousX; float dy = y - mPreviousY; // reverse direction of rotation above the mid-line if (y > getHeight() / 2) { dx = dx * -1 ; } // reverse direction of rotation to left of the mid-line if (x < getWidth() / 2) { dy = dy * -1 ; } mRenderer.mAngle += (dx + dy) * TOUCH_SCALE_FACTOR; // = 180.0f / 320 requestRender(); } mPreviousX = x; mPreviousY = y; return true; }
  22. 22. Let’s get our hands dirty with code!
  23. 23. Advanced Training • Making Your App Location Aware • Performing Network Operations • Transferring Data Without Draining the Battery • Syncing to the Cloud • Designing for Multiple Screens • Improving Layout Performance • Managing Audio Playback • Optimizing Battery Life • Creating Custom Views • Adding Search Functionality • Remembering Users • Sharing Content • Capturing Photos • Maintaining Multiple APKs • Creating Backward-Compatible UIs • Developing for Enterprise • Monetizing Your App • Designing Effective Navigation • Implementing Effective Navigation • Designing for TV • Displaying Bitmaps Efficiently • Implementing Accessibility • Displaying Graphics with OpenGL ES
  24. 24. See you nxt time!

×