1

あるアプリケーションから別のアプリケーションを呼び出したいのですが、別のアプリケーションへの呼び出しは非アクティビティ クラスからのものです。しかし、getPackageManager()このようなエラーが表示されますThe method getPackageManager() is undefined for the type AppLauncher。パッケージマネージャーもインポートしましたが、それでも同じエラーが表示されます。

アクティビティ以外のクラスから別のアプリを呼び出すことはできますか?よろしくお願いします。

4

3 に答える 3

2

activity contextに渡しますnon-activity class。そして、そのコンテキストから別のアプリケーションを呼び出します。

于 2012-09-06T06:16:30.013 に答える
1

それを呼び出すコンテキストが必要ですgetPackageManager()。アプリのアクティビティからコンテキストを取得します。

メインアクティビティの onCreate ブロックで:

AppLauncher.setContext(this.getBaseContext));

非アクティビティ クラス (AppLauncher) で:

Context context;
public static void setContext(Context context) {
    this.context = context;
}

getPackageManager() を呼び出す非アクティビティ クラスで:

context.getPackageManager();

ヒント: Windows 上の Eclipse で開発している場合は、常に Ctrl+Shift+O を使用して、欠落しているパッケージと必要なパッケージを自動的にインポートします。

于 2012-09-06T06:44:54.230 に答える
0

これらのメソッド(getPackageManager()startActivity()など)はコンテキストのメンバーです。メインアクティビティまたはそのコンテキストのいずれかを他のクラスに渡す必要があります。

ところで、別のアプリケーションを起動するためにパッケージマネージャーが必要な理由がわかりません。対応するインテントでstartActivity()を呼び出すのはどうですか?(しかし、私はそれをあなたのやり方で行う正当な理由があると思います)

于 2012-09-06T06:20:21.740 に答える