1

私はアンドロイドが初めてです。トーストを中央に表示したい。Google Play サービスがインストールされていない場合、Google Play サービスにリダイレクトしてトーストを表示したいと考えています。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.map_layout);

    context = this;

    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if(resultCode != ConnectionResult.SUCCESS) {
        Toast toast = Toast.makeText(context, getString(R.string.install_google_play_service), Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
        context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.gms")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
    }
4

2 に答える 2

4

runOnUiThread()トーストの下から、これは別のスレッドで実行されていると思います。トーストは UI の一部であるため、UI スレッドで実行する必要があります。

すべてのコードを UI スレッド内に移動するだけToastで、正常に動作するはずです。

于 2013-09-20T15:50:27.967 に答える
0

これは私にとってはうまくいきました。

インテントのフラグを外しました。

context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.gms")));
于 2013-09-20T16:03:24.540 に答える