Как закрыть действие (finish ()) из сервиса? - PullRequest
0 голосов
/ 03 августа 2011

я делаю приложение для экрана блокировки .. у меня есть служба, которая прослушивает SMS ... когда команда получения SMS andro-lock затем отображает экран блокировки, который вызывается службой: вот код услуги:

 if (tempMessage[0].toString().equalsIgnoreCase("andro-lock") && tempMessage[1].toString().equals(tempPassword.toString())) 
                            {
                                //Toast.makeText(ListenSMSservice.this, "Menjalankan command andro-lock", Toast.LENGTH_LONG).show();
                                openDatabase();
                                updateStatusL();
                                Intent myIntent = new Intent(ListenSMSservice.this,LockScreenForm.class);
                                myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                getApplication().startActivity(myIntent);
                            }

этот код работает безупречно, но у меня есть некоторые проблемы, когда я пытаюсь разблокировать свой телефон ... если моя служба получает команду andro-unlock, тогда я должен закрыть (закончить) этот lockscreen.java .. я пробовал много кода и все еще не работает .. что я должен сделать, чтобы закрыть экран блокировки, когда моя служба получает команду andro-unlock ?? пожалуйста, помогите ..

else if (tempMessage[0].toString().equalsIgnoreCase("andro-unlock") && tempMessage[1].toString().equals(tempPassword.toString()))   
                            {
                                //what must i do??
                                //any solution??

                            }

Спасибо за вашу помощь ..

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

Возможное решение для прекращения деятельности будет:

Intent myIntent = new Intent(ListenSMSservice.this,LockScreenForm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle myKillerBundle = new Bundle();
myKillerBundle.putInt("kill",1);
myIntent.putExtras(myKillerBundle);
getApplication().startActivity(myIntent);

В LockScreenForm

onCreate(Bundle bundle){
if(this.getIntent().getExtras().getInt("kill")==1)
    finish();
}
1 голос
/ 03 августа 2011

Вы можете отправить намерение к своей деятельности с дополнительным, и действие может прочитать это дополнительное и, если присутствует, само finish().

С уважением, Стефан

...