2013-05-31 37 views
9

Làm thế nào để diệt toàn bộ ứng dụng trong onne nhấp chuột duy nhất .. kết thúc() không hoạt động? nó chuyển hướng để tha hoạt động trước đó ... pls hướng dẫn tôi.Quá trình tiêu diệt Android

  public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      WallpaperManager wp = WallpaperManager 
        .getInstance(getApplicationContext()); 

      try { 
       Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)) 
         .getDefaultDisplay(); 
       int width = d.getWidth(); 
       int height = d.getHeight(); 
       wp.setBitmap(b1); 
      } catch (IOException e) { 
       Log.e("error", "Cannot set image as wallpaper", e); 
      } 

         finish(); 

     } 
+0

sử dụng System.exit (0); – Riser

+0

Mặc dù mọi người đang trả lời câu hỏi của bạn, bạn thực sự nên xem bài đăng của Gunaseelan và đọc "Bỏ một ứng dụng - có bị cau mày không?" http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon. – Ryan

+0

Xin lỗi, tôi đã thử ... nhưng không hoạt động – Coder

Trả lời

1
  • Sử dụng startActivityForResult để bắt đầu bất kỳ hoạt động.
  • Viết finish() trong onActivityResult hoạt động mà bạn đang bắt đầu hoạt động khác nếu result == RESULT_CANCELLED.
  • Cuối cùng sử dụng finish() tại thời điểm thoát.
1

tôi nghĩ rằng bạn muốn điều này

Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
5

Bạn có thể sử dụng chức năng này để đóng ứng dụng của bạn

Process.killProcess(Process.myPid()); 
+1

int pid = android.os.Process.myPid(); android.os.Process.killProcess (pid); Tôi đã viết lệnh này .. nhưng nó không hoạt động cho tôi ... nó chỉ giết hoạt động hiện tại – Coder

25

System.exit() không giết ứng dụng của bạn nếu bạn có nhiều hơn một hoạt động trên stack

Sử dụng android.os.Process.killProcess(android.os.Process.myPid()); theo cách này.

cho mẫu

public void onBackPressed() { 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    super.onBackPressed(); 
} 

Để cụ thể hơn thấy Is quitting an application frowned upon?, How to force stop my android application programmatically?

Tôi hy vọng điều này sẽ giúp bạn.

+0

tôi có hai activity.activity một hiển thị iamges trong GridView và hiển thị hoạt động thứ hai được chọn hình ảnh trong fullview.when tôi bấm vào thiết lập hình nền cả hai hoạt động nên b đóng na ... nhưng nó đã không làm việc bằng cách sử dụng kết thúc aby, hệ thống, thoát (0), quá trình giết ... – Coder

+0

Bỏ ứng dụng – Coder

+0

có thể là sai ... nhưng tôi viết kết thúc trong cả hai hoạt động sau làm việc .. bây giờ làm việc tốt :) – Coder

1

Finish()

gia tăng ở mức API 1 Gọi này khi hoạt động của bạn được thực hiện và cần được đóng lại. Kết quả Hoạt động được truyền lại cho bất kỳ ai đã khởi chạy bạn qua onActivityResult().

bạn phải sử dụng System.exit() để xóa ứng dụng của bạn trên một lần nhấp để đóng trực tiếp hoạt động.

Tại sao kết thúc() không hoạt động đối với bạn?

Lấy ví dụ khi Hoạt động A gọi là Hoạt động B và khi bạn gọi kết thúc() trên hoạt động B nếu kết thúc hoạt động nhưng hoạt động A đã gọi cho anh ấy và hoạt động trước đó sẽ trả về bạn Hoạt động Màn hình

Bạn có thể làm gì?

  1. Bạn có thể gọi System.exit() - Nó sẽ trực tiếp giết ứng dụng bất cứ nơi nào nó được gọi từ nó không quan trọng.
  2. Sử dụng Process.killProcess (id quá trình của bạn);

  3. Bắt đầu hoạt động tại nhà bằng cách giết chết hoạt động hiện tại của bạn bằng cách sử dụng kết thúc() và sau đó gọi

    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    
Các vấn đề liên quan