Activity設定、起動、クローズのactivity例詳細


まず効果図を見ます。

Androidは、Activity、Service、Broadcast receivers、およびConttent providersの4つのコンポーネントを提供しています。つまり、Androidアプリケーションの開発の礎石です。システムは、さまざまな構成によって提供される切り込みポイントを開発されたアプリケーションに入力することができます。ユーザーにとっては、すべてのセットアップが実際の切り口ではないが、彼らの間はお互いに依存しており、それぞれが存在するエンティティとして、特定の役割を果たしており、唯一無二の礎石としてAndroidアプリケーションの動作を開発者に説明するのを助けている。自分のActivityを整理して点滴を勉強します。
一つのAcitvityは、電子メールアプリケーションにおいて、受信リストを表示するActivity、メールを書くActivity、メールの内容を読むActivityなどの画面に表示されます。Activityはユーザー体験を提供するために用いられ、多くの異なる体験のActivityが集まって、Androidアプリケーションのユーザー体験を形成することができます。各Activityは互いに独立しています。アプリケーションは自分のActivityにアクセスできるほか、他のAPPのAcitivityにもアクセスできます。
1.どのようにActivityを作成しますか?
Activityのサブクラスを作成しなければなりません。サブクラスでActivity状態がライフサイクルで切り替わる時にシステムのコールバックの関数(onCreate、onStart、onResume、onPause、onStop、onDestroy)を実現する必要があります。もちろんすべての関数が再実現されるわけではありません。その中の二つの比較的重要な関数はonCreateと
onPause:
onCreate()は、この方法を書き換えなければなりません。システムはこの方法を呼び出してactivityを作成します。この方法を実現するのはあなたが作成したActivityを初期化するための重要なステップです。その中で一番重要なのは、あなたの展示するユーザーインターフェースのレイアウトを定義するためにsetContintViewを呼び出すことです。
OnPause()は、システムタスクユーザがこのインターフェースを離れると、この方法を呼び出します。このときはActivityを破壊することはありません。通常ここでは、データの保存など、ユーザーセッションを超えたいくつかの恒久的な変化を処理します。
スムーズなユーザー体験と処理を保証するために、他のコールバック関数でAtctivityを停止または廃棄します。ワンストップ()の方法では、一般的にいくつかの大きな資源貨物のオブジェクトのリリースを行います。onResumeで必要なリソースを再読み込みできます。
2 Activityを作成する

public class MainActivity extends Activity { 
//        
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);//activity    
} 
}
2.Activityの作成が完了した後、システムにアクセスするためには、アプリケーションのAndroid Manifest.xmlファイルに登録することを宣言しなければなりません。

<activity 
android:name="com.zy.demo.activity.MainActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity>
<activity>多くの属性は開発者に異なる特色を定義するActivityがあります。例えば、lable、iconまたはtheme、styleなどです。その中でアンディ:nameは必須の属性であり、activityの名前を定義しています。アプリケーションがリリースされた後は変更できません。
<activity>は、他のアプリケーションコンポーネントがどのようにActivityをアクティブ化(起動)するかを宣言するために、様々なintent-filterを提供しています。<action>と<category>の2つの要素が含まれています。上記の例のように3.Activityの起動
3.1 startActivity
startActivityを呼び出してActivityを起動します。intentは起動するActivity、またはあなたが行うactionを正確に説明します。intentはデータを持ってAcitivityを起動するためにも使えます。
同じアプリケーションの中で他のActivityを簡単に起動する必要がある場合、intentの明確な定義はActivityクラスを起動すればいいです。

//    intent,      activity:ToStartActivity 
Intent intent = new Intent(MainActivity.this,ToStartActivity.class); 
//  startActivity(),  activity 
startActivity(intent); 
あなたのアプリケーションでActivityが実行できない行動を実行する必要があります。代わりに携帯電話の他のアプリケーションのActivityを使って実行します。例えばメールを送ります。写真を見ます。単語を探します。これはつまりIntentの重要な指摘です。あなたがやりたい行動を説明するintentを定義して、システムに送ったら、適切なAcitivtyを起動して実行してくれます。複数のアプリケーションがあるActivityがこの行動を処理できる場合、システムはユーザーに選択させます。このActivityが実行されたら、元のActivityと比較します。

//    google     
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); 
intent.putExtra(SearchManager.QUERY, "zy"); 
startActivity(intent); 
アプリケーションをまたいでActivityを起動する時、intentを定義する時に彼のために具体的なacitvityを指定しなければなりません。前提はこのactivityは自分のアプリケーションに露出しなければなりません。

Intent intent = new Intent(); 
//            ,    
ComponentName cn = new ComponentName("com.android.settings", 
"com.android.settings.RunningServices"); 
intent.setComponent(cn); 
//   context.startActivity()          
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
3.2 startActivityForResoult
スタートしたAcitivityフィードバックの結果は、startActivityForResoultを呼び出すことによって受信される。次に起動するActivityの結果を受信するためには、onActivityResoult()というコールバック関数を書き換える必要があります。呼び出したactivityが完了すると、結果を含むintentはonActivityResoultに返されます。例えば、アプリケーションのActivityでは、連絡先の一つをユーザが選択する必要があり、Activityは連絡先の一部情報を得る必要があります。

Intent intent = new Intent(Intent.ACTION_PICK, 
Contacts.People.CONTENT_URI); 
//                activity 
startActivityForResult(intent, PICK_CONTACT_REQUEST); 
   PICK_CONTACT_REQUEST     int         。
//  onActivityResult()             
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
//     requestCode  ,        resultCode     PICK_CONTACT_REQUEST 
if (resultCode == Activity.RESULT_OK 
&& requestCode == PICK_CONTACT_REQUEST) { 
//   Intent     ,                 
Cursor cursor = getContentResolver().query(data.getData(), 
new String[] { Contacts.People.NAME }, null, null, null); 
if (cursor.moveToFirst()) { //   cursor   ,           
int columnIndex = cursor.getColumnIndex(Contacts.People.NAME); 
String name = cursor.getString(columnIndex); 
//       
} 
} 
}
ここでは、onActivityResoult()の使用による返却結果の処理について説明しますが、まず要求が成功したかどうかを確認し、その結果が返ってきたかを確認します。結果はstartActivityForResoult()に必要なものかどうか、満足すればIntentを通じて返されるデータを処理します。
4.Activityをクローズする
1 Activityは、Finish()メソッドを呼び出して自分を閉じることができます。また、Finish Activity()を呼び出すことによって、独立前に起動したActivityをクローズすることもできます。
2フィニッシュActivity()を呼び出す方法は、独立する前に起動したActivityをクローズします。

//         startActivityForResult(requestCode)   Activity 
this.finishActivity(requestCode); 
いつ一つのActivityを閉じるかについては、システムが直接管理してくれます。しかし、ユーザーがこのActivityに戻らないことを確認したら、上記の方法を呼び出して対応のActivityをオフにします。
5デモコード:

package mm.shandong.com.testusea;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class TestUseAActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_use_a);
}
//     activity
public void startFirstActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity2.class);
startActivity(intent);
}
//     activity
public void startSecondActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity3.class);
startActivity(intent);
}
//     activity,  activity 4      
public void startThirdActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity4.class);
startActivityForResult(intent, 1);
new Thread() {
@Override
public void run() {
try {
Thread.sleep(4000);
finishActivity(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
}
以上は小编が绍介したActivityの配置、起动とクローズのactivityの実例です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。