3

EclipseでAndroidソースコードを実行しようとしています。このアプリのtargetSdkVerisonは5です。私はAndroidをまったく使用したことがなく、最新のAPI(Android 4.1)をインストールしました。コードの一部で、次のようなエラーが発生します

    public void hideNotification(Service context)
    {
        context.setForeground(false);// error: The method setForeground(boolean) is undefined for the type Service
        getNotificationManager(context).cancel(NOTIF_PLAYING);
    }



    public void showNotification(Service context, long songId)
    {
        context.startForeground(NOTIF_PLAYING, newNotification(context, songId));//error :Call requires API level 5 (current min is 3): android.app.Service#startForeground
    }

これらは、異なるバージョンのSDK間の非互換性が原因だと思います。どうすれば同じことを解決できますか?

4

3 に答える 3

2

まず、setForeground(...)廃止され、使用できなくなりました。詳細については、このブログを参照してください。

マニフェストで定義されている最小SDKレベルが3であるため、このエラーが発生しますstartForeground(...)。API5以降が必要です。

現在、これを解決するために、API5未満のものをサポートすることはできません。ダッシュボードによると、ユーザーの99.3%がAPI5以降に移行しています。これを行うには、をに設定minSdkVersionし、へ5の呼び出しを削除しますsetForeground(...)。(これにより、両方のエラーメッセージが解決されます。)

SDKから削除されたためsetForeground(...)、使用しないでください。

于 2012-08-06T04:44:20.760 に答える
0

Service.setForeground(boolean)APIレベル5以降存在しないメソッドです。に置き換えられましたstartForeground(int, Notification)

(リンクからの)ドキュメントは、5以上のAPIをターゲットにしながら、古いデバイスをサポートするために使用できる方法を提案しています。

于 2012-08-06T04:44:04.503 に答える
0

Android 2.0以降、Android 1.5でのアプリケーションの乱用により、このメソッドは非推奨になりました。次のブログをチェックして、それ以降の変更点を確認してください。

http://android-developers.blogspot.ca/2010/02/service-api-changes-starting-with.html

また、このページにアクセスして、新しいメソッド(および小さなサンプル)を参照してください。

http://developer.android.com/reference/android/app/Service.html#startForeground(int、android.app.Notification)

于 2012-08-06T04:44:26.110 に答える