2012-06-06 15 views
29

カスタムアクションを使用してアプリケーションでアクティビティを開始する予定です。私はいくつかの答えを見つけましたが、試してみると、意図は{アクティビティ= com.example.foo.bar.YOUR_ACTION}を処理するためのアクティビティが見つかりませんでしたjava.lang.RuntimeExceptionがスローされます。カスタムアクションを使用してアクティビティを開始

これは私のマニフェストファイル内の活動である:

<activity 
    android:name=".FeedbackActivity" > 
    <intent-filter> 
     <action android:name="com.example.foo.bar.YOUR_ACTION" /> 
    </intent-filter> 
</activity> 

そして、これは私が活動を始めている方法です:

Intent intent = new Intent("com.example.foo.bar.YOUR_ACTION"); 
startActivity(intent); 

任意の助けいただければ幸いです。

+0

あなたのマニフェストをポスト – FoamyGuy

+0

私は正しいものとしてMaksの答えをマークするべきだと思います(他のユーザを参照するため) – Kzar

+0

実際には、答えをマーキングとは、それがOPのために働いていたということですそれは他のすべての人にとって最高の答えだと思います。 – Cullub

答えて

22

私はあなたの意図が間違っていると思います。このようにしてみてください。

String CUSTOM_ACTION = "com.example.foo.bar.YOUR_ACTION"; 

//Intent i = new Intent(this, FeedBackActivity.class); // <--- You might need to do it this way. 
Intent i = new Intent(); 
i.setAction(CUSTOM_ACTION); 

startActivity(i); 
+0

私はもう例外を取得していませんが、ユーザーがアクションを完了するためにアプリを選択するための画面が表示されます。 –

+0

があなたのアプリですか? – FoamyGuy

+0

あなたのコードに 'listIntent'とは何ですか? 「私」を意味しますか? – Karu

80

私は何が必要だと思うことは、自分の意思-フィルタに 例えば、デフォルトのカテゴリを追加することです。

<activity 
    android:name=".FeedbackActivity" > 
    <intent-filter> 
     <action android:name="com.example.foo.bar.YOUR_ACTION" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

this answerを参照してください。

+3

これは正解であり、そのようにマークする必要があります。 – David

+0

はい!ありがとう :) – yahya

1

単にデフォルトとして追加し、インテントフィルタカテゴリ。

暗黙の意図は完璧に動作し、多くの場合、その優れたクラス名を使用するよりもサービス/アクティビティを呼び出すためにテント・アクションで暗黙の意図を使用します。

適切な文脈でstartActivty()/startService()の前に、このメソッド'queryIntentActivities(Intent intent, int flags)'をパッケージマネージャークラスから使用します。

それは、Androidシステムはインテントあなたとすべての試合を取得しているかどうかをチェックする(活動を開始する責任)ActivityManagerに役立ちます。

リストが返されない場合は、サイズ0またはそれ以上> 0が返されます。これにより

また、あなたのアプリがコールを取得しており、この場合、アプリがインストールされていない場合でも、/いくつかの問題を持っている場合、それはクラッシュしませんが、ログに警告がスローされます確認することができます。ユーザーは、起動されていないアプリから離れて大きな問題に直面することはありません。

(ツアーアプリがクラッシュした場合、ユーザーがあなたを許すことはありません)。

は、これが役立つことを願っています! ハッピーコーディング。 :)

関連する問題