Posted at

【既存知識を】Androidの復習します! - Activity編 - 【自分なりに纏める③】

More than 3 years have passed since last update.


概略

相も変わらず初心者エンジニア続けています。

そんな私が一月Android開発に挑んだので

そのときの知識を備忘録と言うか、

まぁなんかそんな感じです。

この記事ではActivityについて

僕が学んだことを色々紹介します。


Activityってなんなの。

MVCでいうCに当たると僕は理解しています。

Controllerですね。

AndroidManifestで起動した時に最初に起動するActivityを選択しますよね。

あれはindex.htmlを何処にするか設定しているという理解でOKです。

html 的に言うと

AndroidManifest - header

Activity - javascript

xml - body

見たいな感覚です。


ライフサイクル

まずは此方をどうぞ。

アクティビティのライフサイクル

ナンノコッチャとなるかもしれませんが、ここを理解しておくと

後がグッと楽になりますので是非一読しましょう。


時間がないから三行で

いいから三行で説明しろという方には

Androidには状態が変化するタイミングにそれぞれ名前がついています。

その状態がくるくる回る様子を一般的にライフサイクルって言っていて

ぶっちゃけるとそのタイミングで動くメソッドがあるのを知っておいてね。

てことです。

p2-1.png


アクティビティのライフサイクルの記事様より引用


( ゚д゚)ポカーン

って人。

更に下を見るとわかるかもしれません。


Activity雛形


public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public void onStart(){
super.onStart();
}

@Override
public void onResume(){
super.onResume();
}

@Override
public void onPause(){
super.onPause();
}

@Override
public void onStop(){
super.onStop();
}

@Override
public void onRestart(){
super.onRestart();
}

@Override
public void onDestroy(){
super.onDestroy();
}

}

ライフサイクルと難しく考えるからあれなんですが、

ともかく状態が切り替わるときに、対応したメソッドが動くんです。

それに合わせて色々機能作っていきましょうね。

っていうのがAndroidのライフサイクルなんだと理解しておけば、もう怖くもないですよね。


intentってなんなの?

intent

これってなんなんですかね?

未だに僕もよくわかってないです。

ので、これを気に少し勉強してみました。

intentには2種類あるみたいで

明示的インテント

Intentで画面遷移する(明示的Intent)/Getting started

黙秘的インテント

Intentで画面遷移する(暗黙的Intent)/Getting started

それぞれ参考になりそうな記事を見つけましたので是非そちらを...

このサイト様から引用いたしますと


Activityをクラス名で指定して呼び出す方法=明示的Intent

動作(振る舞い)で呼び出し、Activityを指定しない方法=暗黙的Intent

ということらしいのですが、まだよくわからないです。

何が明示的で黙秘的なのか、僕なりに噛み砕いてみました。

Androidはiosのように、ブラウザならSafari!

みたいな決まったものがなく、多くのブラウザアプリケーションが有り、多くのカメラアプリケーションがあったりします。

明示的intentはその多くのアプリケーションの中から「Chrome」で起動する!と決めていたり、このアプリケーションの次の画面はこれ!と、決まった処理(決まっている事柄)をする際に使われるIntentのことを明示的Intentと言うようです。

逆に黙秘的intentというのは「カメラで撮影する」「ブラウザで開く」のような動作に対して、対応できるアプリケーションをAndroid側から提案し、ユーザーがアプリケーションを選択する事で連携を取るように使われるIntentの事を黙秘的Intentと言うようですね。