1

私のフラグメントでは、ユーザーがサインインした後、onActivityResult コールバックが呼び出されます。onActivityResult にログインしていますが、実際には呼び出されていますが、サービスは開始されていません...サービスはマニフェストに登録され、onResume で実行されます。getActivity も NULL を返しません。何が問題なのかわかりません...誰かアドバイスをいただけますか。

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case REQUEST_1:
            if (resultCode == Activity.RESULT_OK) {
                Intent intent = new Intent(getActivity(), MyService.class);
                intent.setData(Uri.parse("http://www.google.com");
                getActivity().startService(intent);
            }
            break;
        default:

            super.onActivityResult(requestCode, resultCode, data);
            break;
        }
    }
4

3 に答える 3

1

同様の問題がありました。

@Justinが私への返信で指摘したように、問題はマニフェストファイルにサービスを適切に登録することです。

登録しないとアプリが落ちます。IntentServiceを使用している場合を除きます。これはデフォルトで別のスレッドにあるため、アプリはクラッシュしませんが、サービス自体はクラッシュします..それは、私たちがそれに気付かないだけで、メイン アクティビティ UI が残る原因となります..

最後に、IntentService クラスを宣言するマニフェストにタイプミスがあります。

誰かがこれが役に立つことを願っています。

于 2013-04-24T14:37:24.380 に答える
0

ほとんどの場合、サービスのマニフェストに適切なタグが登録されていません。

これを確認するには、ComponentNameから返されるオブジェクトを確認しますstartService。nullの場合、意図に一致するサービスはありません。

于 2013-02-19T21:24:01.917 に答える
-1

Androidマニフェストでアクティビティ名を宣言してアクティビティ名を宣言しなかったと思いますこのようなAndroid menifest.xmlファイルに次のコードを記述します

<activity 
        android:name=".YourActivityName">   
</activity>
于 2013-02-19T21:30:39.307 に答える