2010-09-13 31 views
5

Tôi muốn hiển thị bánh mì nướng đơn giản, khi thoát khỏi ứng dụng. Vấn đề là, bánh mì nướng không được hiển thị. Tôi cho rằng đó là do sự nhạy cảm được hoàn thành hoặc vì System.exit(0), nhưng tôi không biết cách giải quyết nó. Có ai có mẹo không? Cảm ơn!!Android: Hiển thị bánh mì nướng sau khi hoàn thành ứng dụng/hoạt động

Trong hoạt động của tôi Tôi có đoạn mã sau:

Toast.makeText(this,"Exit application.",Toast.LENGTH_SHORT).show(); 
exitApp(); 

public void exitApp(){ 
    App.getInstance().exit(); 
    finish(); 
} 

Và lối ra mehod trong App:

public void exit() { 
    System.exit(0); 
} 

Trả lời

4

Đó là khuyến khích bạn gọi kết thúc để đóng ứng dụng của bạn thay vì gọi System.exit(0); từ cách tiếp cận này sẽ giết hoàn toàn ứng dụng của bạn. System.exit() giết toàn bộ quá trình của bạn. finish() chỉ ẩn, dừng và hủy hoạt động của bạn. Quá trình của bạn vẫn đang chạy.

Bạn chỉ có thể sử dụng finish(); để đóng hoạt động của mình và điều này sẽ giải quyết được sự cố của bạn.

http://groups.google.com/group/android-developers/browse_thread/thread/63de8a9cdffa46a3?pli=1

+0

Xin lỗi, tôi đã không mô tả chính xác: Ứng dụng mở rộng lớp Ứng dụng và không hoạt động. –

+0

Q là làm thế nào để hiển thị bánh mì nướng, ý tưởng nào? – ankitjaininfo

+0

Có nhưng nó không mở rộng nó đến một hoạt động. Tôi nghĩ rằng bối cảnh nên được chuyển từ lớp hoạt động đến lớp mở rộng ứng dụng của mình để ông có thể hiển thị Toast ở đó. – DeRagan

0

Tôi chỉ bắn ra một chủ đề mới để có thời gian cho Toast để hiển thị trước khi quá trình hệ thống được giết. Hãy khám phá:

private Runnable checkForAdBlockRun = new Runnable() { 
    @Override 
    public void run() { 
     boolean blocked = false; 
     try { 
      blocked = AdBlockUtil.areAdsBlocked(); 
      if (blocked) { 
       Log.w(TAG, "Ads are blocked on this device."); 
       adBlockHandler.sendEmptyMessage(0); 

      } 
     } 
     catch (Exception e) { 
      Log.w(TAG, "Could not check for ad blocking", e); 
     } 
    } 
}; 

private Handler adBlockHandler = new Handler() { 
    @Override 
    public void handleMessage(Message message) { 
     Toast.makeText(instance, "Can not run this app with adblock on", Toast.LENGTH_LONG).show(); 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        Thread.sleep(3000); 
       } 
       catch (Exception e) { } 
       System.exit(0); 
      } 
     }).start(); 
    } 
}; 
Các vấn đề liên quan