Show pageOld revisionsBacklinksExport to PDFBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Android Developer Interview ====== ===== Basic ===== ==== Question 1 ==== * Suppose you have a v-shape array, e.g [1, 12, 31, 44, 51, 54, 23, 22, 10]. How to find the maximum value in a v-shape array? * 假如我们有一个v-shape数组,如[1, 12, 31, 44, 51, 54, 23, 22, 10]。怎样找出它的最大值? ===== Android ===== ==== Question 2 ==== * Describe three common use cases for using an Intent. * 请说出 Intent 三个常用案例。 ==== Question 3 ==== * Under what condition could the code sample below crash your application? How would you modify the code to avoid this potential problem? Explain your answer. * 在什麽情况下以下代码会崩溃?你可以怎样避免?请解释。 <code> Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage); sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); // "text/plain" MIME type startActivity(sendIntent); </code> ==== Question 4 ==== * What is the relationship between the life cycle of an AsyncTask and an Activity? What problems can this result in? How can these problems be avoided? * AsyncTask 和 Activity 的生命周期有什麽関系?这个関系有可能导致什麽问题?你可以如何避免? ==== Question 5 ==== * What is difference between Serializable and Parcelable ? Which is best approach in Android ? * Serializable 和 Parcelable 有什麽分别?那一个在安卓使用比较好? ==== Question 6 ==== * Write down the log results at 4 different cases * Start MainActivity * Invoke onClick() at MainActivity * User press back button from ActivityTwo * Start ActivityThree * 我们有以下三段代码,请分别写下以下四种执行后log的结果 * 开始MainActivity * 触发onClick() at MainActivity * 用户在ActivityTwo按back button * 开始ActivityThree <code> public class MainActivity extends Activity implements OnClickListener { final String TAG = "States"; Button btnActTwo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnActTwo = (Button) findViewById(R.id.btnActTwo); btnActTwo.setOnClickListener(this); Log.d(TAG, "MainActivity: onCreate()"); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "MainActivity: onRestart()"); } @Override protected void onStart() { super.onStart(); Log.d(TAG, "MainActivity: onStart()"); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "MainActivity: onResume()"); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "MainActivity: onPause()"); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "MainActivity: onStop()"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, "MainActivity: onDestroy()"); } @Override public void onClick(View v) { Intent intent = new Intent(this, ActivityTwo.class); startActivity(intent); } } </code> <code> public class ActivityTwo extends Activity { final String TAG = "States"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two); Log.d(TAG, "ActivityTwo: onCreate()"); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "ActivityTwo: onRestart()"); } @Override protected void onStart() { super.onStart(); Log.d(TAG, "ActivityTwo: onStart()"); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "ActivityTwo: onResume()"); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "ActivityTwo: onPause()"); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "ActivityTwo: onStop()"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, "ActivityTwo: onDestroy()"); } } </code> <code> public class ActivityThree extends Activity { final String TAG = "States"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.three); Log.d(TAG, "ActivityThree: onCreate()"); this.finish(); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "ActivityThree: onRestart()"); } @Override protected void onStart() { super.onStart(); Log.d(TAG, "ActivityThree: onStart()"); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "ActivityThree: onResume()"); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "ActivityThree: onPause()"); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "ActivityThree: onStop()"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, "ActivityThree: onDestroy()"); } } </code> interview/developer/android/start.txt Last modified: 2019/07/28 15:36by don.lee