2017-04-26 14 views

答えて

2

意図なしに別のメンバーからアクティビティを開始する方法はありません。

0

あなたのアクティビティをフラグメントの中に入れ、ボタンからフラグメントを開始します。 Oficialドキュメントよれ

2

意図が実行する操作の抽象的記述です。 startActivityと一緒に使用して、ActivitybroadcastIntentを起動して任意の興味のあるBroadcastReceiverコンポーネントに送信し、startService(Intent)またはbindService(Intent, ServiceConnection, int)をバックグラウンドサービスと通信することができます。

Intentは、異なるアプリケーションのコード間で遅延ランタイムバインディングを実行する機能を提供します。その最も重要な用途は、活動の開始であり、活動の間の接着剤と考えることができます。基本的には、実行されるアクションの抽象的な記述を保持するパッシブなデータ構造です。

例外や回避策なしでアクティビティを開くには、これを使用する必要があります。その場合は、システムアーキテクチャ全体が無視されます。

1

これらは、任意の活動

第一

startActivity(new Intent(Activity_A.this, Activity_B.class)); 

第二

Intent intent = new Intent(Activity_A.this, Activity_B.class); 
startActivity(intent); 

第三

を開始する可能性のある方法です
Intent intent = new Intent(Activity_A.this, Activity_B.class); 
startActivityForResult(intent,code); 
0

あなたは

と仕事をした後、あなたはその活動の意図を終了する finish()を使用することができますが、 再入力にユーザーをしたくない Intentを使用しない理由は、以前の活動

場合

if(currentUser == null){ 
    startActivity(new Intent(MainActivity.this,StartActivity.class)); 
    finish(); 
} 

あなたには、いくつかのコードの中をしたいのであれば、ユーザは再び

をバックアップすることができませんアクティビティは、

isFinishing()機能

を追加できるよう活動は、Android自体によって殺されている場合時にはそれも呼び出すことができ、あなたが onDestroy()オーバーライドメソッドを使用することができます

を終えています

onDestroy()の中には、アプリケーションがを返してtrueに戻るかどうかを確認する方法、そうでない場合はfalseを返す他の方法で、状況ごとにコードを簡単に指定できます。

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    if(isFinishing()){ 
     // Activity is being destroyed by the function `finish()` 
     // What to do... 
    }else{ 
     // Activity is being destroyed anonymously without `finish()` 
     // What to do... 
    } 
} 
関連する問題