2011-09-27 40 views
7

Tôi có một Hoạt động mà tôi hiển thị dưới dạng không mod khi điện thoại đổ chuông (qua ứng dụng điện thoại). Tôi muốn kết thúc Hoạt động khi xảy ra một trong các sự kiện sau. Đầu tiên là nếu tôi chạm vào bất cứ nơi nào bên ngoài Hoạt động (đây không phải là vấn đề), thứ hai là nếu chuông dừng. Tôi đang nghe IDLE_STATE trong bộ thu phát nhưng tôi không chắc chắn về cách gọi kết thúc hoạt động khi tôi nhìn thấy nó. Người nhận không được đăng ký bởi hoạt động nhưng theo Manifest.xmlHoàn thành một Hoạt động từ Bộ thu Phát sóng

Trả lời

0

Điều gì sẽ xảy ra nếu bạn đăng ký một người nhận phát sóng khác từ hoạt động. Sau đó, khi bạn muốn giết nó, hãy gửi một tin nhắn quảng bá từ máy thu phát mà bạn đã đề cập.

0

Tôi thực sự đã kết thúc việc thêm một PhoneStateListener trong Hoạt động để nghe IDLE_STATE.

12

viết mã trong việc tiếp nhận của bạn phát sóng bây giờ điều này sẽ gửi một dàn diễn viên rộng với mục đích đặt tên là "com.hello.action"

Intent local = new Intent(); 
local.setAction("com.hello.action"); 
sendBroadcast(local); 

Bây giờ bắt ý định này trong hoạt động này với bạn muốn hoàn thành nó và sau đó gọi các super.finish() vào phương pháp onReceive của receiver của bạn như thế này

public class fileNamefilter extends Activity { 
ArrayAdapter<String> adapter; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    IntentFilter filter = new IntentFilter(); 

    filter.addAction("com.hello.action"); 
    registerReceiver(receiver, filter); 

    } 
BroadcastReceiver receiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 

    } 
}; 

public void finish() { 
    super.finish(); 
}; 
} 

này sẽ kết thúc hoạt động

Các vấn đề liên quan