如何在处于崩溃的任何状态时停止完整的应用程序。

时间:2015-12-28 08:41:11

标签: android

我正在创建一个应用程序。它有许多活动和片段,例如它有登录系统,然后另一个函数进入应用程序。但是当应用程序粉碎它时,保持登录状态。但参数保持为空。这就是应用程序向API发送空值的原因。但是现在我想在发生任何问题时停止完整的应用程序(app粉碎)。任何人都可以建议我!!!!

3 个答案:

答案 0 :(得分:0)

你可以杀死完整的应用程序并将其从运行应用程序列表中通过pid删除它:

 int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

答案 1 :(得分:0)

Create a background service or Broadcast receiver and check with logged in parameter value ,if parameter value is null than call

Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();`enter code here`
        System.exit(0);

答案 2 :(得分:0)

由于这可以在任何活动中随时发生任何崩溃,一种方法是捕获defaultExceptionHandler中的所有异常,并在那里提供你的纾困机制,即在任何此类异常,杀死应用程序,重置参数,等

链接:how to implement uncaughtException android

http://developer.android.com/reference/java/lang/Thread.UncaughtExceptionHandler.html

实施的要点

  • 设置默认异常处理程序以处理任何地方发生的崩溃。

    // Application.java

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
    }
    
  • 编写一个异常处理程序来处理任何崩溃。

    // ExceptionHandler.java

    公共类ExceptionHandler实现     java.lang.Thread.UncaughtExceptionHandler {     私人最终活动ctx;

    public ExceptionHandler(Activity ctx) {
        this.ctx= ctx;
    }
    
    public void uncaughtException(Thread thread, Throwable exception) {
        // Send mail or upload exception details if required.
        // kill app.
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(10);
    }
    

    }