如何从服务中关闭活动(完成())?

时间:2011-08-03 11:49:45

标签: java android android-manifest

我制作一个锁定屏幕应用程序..我有一些服务,听取短信..当短信接收命令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);
                            }

该代码完全有效,但是当我尝试解锁手机时我遇到了一些问题..如果我的服务收到命令并且解锁那么我必须关闭(完成)那个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 个答案:

答案 0 :(得分:3)

停止活动的可能解决方案是:

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 :(得分:1)

您可以使用额外的活动向您的活动发送一个意图,该活动可以读取此额外内容,如果存在,则{@ 1}}本身。

此致   斯特凡