2011-09-27 10 views
7

電話が鳴ったとき(電話アプリを介して)、私はモードレスとして表示するアクティビティを持っています。次のいずれかのイベントが発生した場合、アクティビティを終了します。最初は、アクティビティ外のどこかに触れると(これは問題ではありません)、2番目は呼び出しが停止した場合です。私は放送受信機でIDLE_STATEを聞いていますが、私はそれを見るとアクティビティの仕上げを呼び出す方法がわかりません。受信者はアクティビティによって登録されず、Manifest.xmlによって登録されます。ブロードキャストレシーバからのアクティビティの終了

答えて

0

アクティビティから別のブロードキャスト受信者を登録するとどうなりますか?その後、あなたがそれを殺したいときは、あなたが言及した放送受信機から放送メッセージを送ります。

0

私は実際にアクティビティでPhoneStateListenerを追加してIDLE_STATEを待ち受けました。あなたはそれを終了したいと

12

はあなたが、これは「com.hello.action」

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

という名前の目的で別の広いキャストを送信します、今の放送受信中にコードを書く今の活動にこの意図をキャッチし、これは活動を終了します。この

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(); 
}; 
} 

のようなあなたの受信機 のonReceive方法についてsuper.finish()を呼び出し

関連する問題