2016-07-19 7 views
1

私は自分のプロジェクトをデバッグモードにして、Activity1にブレークポイントを設定しました。 。しかし、このブレークポイントでプロジェクトの実行が停止すると、Activity1という名前のアクティビティまたはクラスを見つける必要があります。Android Studioでアクティビティの呼び出し元クラスを見つける方法は?

私はAndroid studio documentationを通して見てみましたが、私はどのように見つけられませんでしたか?

あなたは、デフォルトでそれを行うと、ここではその理由であることはできません
+0

私の知る限り、AndroidのSDKの面でこれを実行する方法はありません。'Intent'には、' startActivity() 'を呼び出した人を示す' Intent'に余分なものを置くなど、何かを区別するのに役立ちます。次に、 'ActivityI'が' getIntent() 'を介して取得した' Intent'を見て、どのアクティビティがそれを開始したのかを判断できます。 – CommonsWare

答えて

0

閲覧しているアクティビティを知りたい場合は、Logcatを表示するだけで簡単に実行できます。 logcatウィンドウを開きます(AndroidMonitor - > logcat)ActivityManager

ため

検索を

あなたは以下のログに取得wull

7月19日15:42:04.064 606から632までは/ system_process I/ActivityManager:表示される com.android.dialer /。 DialtactsActivity:この場合は+ 674ms

私は携帯電話のアプリケーションを立ち上げました。

しかし、このアクティビティが特定の場所から起動された場合にのみ実行されるコードを入れたい場合は、このようなことができます。

アクティビティを起動するときにこのコードを入力します。あなたは、この特定のフローのためのいくつかのロジックを有効に置きたい活動で

Intent intent = new Intent(context, Activity1.class); 
intent.putExtra("ENABLE_XXX_CODE", true); 

boolean isEnabled = savedInstanceState.getString("ENABLE_XXX_CODE"); 
if(isEnabled) 
{ 
//Your logic goes here. 
} 
0

のAndroidは独自の上のすべてのActivityServiceBroadcastReceiver生活することを意味し、疎結合アプリケーションのライフサイクルを目指しています。それらはIntentによって開始され、Contextからシステムアーキテクチャに送信され、新しいコンポーネントが開始されます。したがって、ブレークポイントのstacktraceにはIntentのソースが表示されず、汎用システムコールがいくつか表示されます。

Activityが呼び出された内容を確認するには、追加のデータを呼び出してIntentに追加する必要があります。あなたはこのようにそれを実行します。

intent.putExtra("SOME_KEY", someValue); 

そしてonCreate()であなたはこのようにそれを読む:送信者が元の値を明記した場合、あなたは

:-)ここでそれを持つことになります

if(savedInstanceState != null) { 
    String source = savedInstanceState.getString("SOME_KEY"); 
} 

を副題として、あなたは通常Activityを始めたものを知りたくありません。上記のコードが使用される唯一の実際のケースは、Activityに渡されたいくつかのパラメータを設定する状況です。それ以外にも、Activityは別個のエンティティである必要があります:-)

関連する問題