1

私が作っているアプリは、ユーザーの利便性のために SMS の受信ボックスを開くことで終わり、この段階で完成です。通常、戻るキーはアクティビティに戻りますが、これはユーザーにとって意味がないため、単にアプリを終了しようとしました。これは完全に機能し、この段階でバージョンをリリースすることさえできました...しかし...ホームキーは、人生を逆戻りするという煩わしい感覚を望まないときに押すのが非常に一般的であることを推測できます. そして今、それは厄介になりました...基本的に、ユーザーが受信トレイからホームを押した場合、バグまたはセキュリティ機能と呼ぶべきかどうかわからない、かなり奇妙な方法でアプリを失いました。次回アプリを起動すると、新しいインテント (受信トレイを表示) に直接移動し、アプリを完全にバイパスします。onResume などはありません。

これを機能させる方法はありますか?

import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    }

    public void onButtonClick(View v) {
        finish();

        final Intent smsIntent = new Intent(Intent.ACTION_MAIN);
        smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        smsIntent.setType("vnd.android-dir/mms-sms");
        startActivity(smsIntent);       
    }
}
4

1 に答える 1

1

あなたが望むものに応じて、あなたが試すことができるいくつかのことがあります

  • マニフェストのルート アクティビティに追加します。android:clearTaskOnLaunch="true"
    このフラグを使用すると、ホームから再起動するたびにアプリがルート アクティビティから開始されます。
  • これsmsIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    により、自宅からアプリを再起動したときに、タスク スタック内の SMS 受信トレイ アクティビティとその上のすべてのアクティビティがクリアされます。
  • `smsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); を追加します。これにより、再起動時に SMS 受信トレイ アクティビティがクリアされます。
于 2013-06-12T20:16:47.440 に答える