gpt4 book ai didi

java - 如何关闭此 Activity ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:00 26 4
gpt4 key购买 nike

我创建了由 SMS 触发的锁屏应用程序。我有 ListenSMS 类,它始终监听传入的 SMS。这是代码:

for (SmsMessage message : messages) {
String tempMessage[] = message.getDisplayMessageBody().toString().split(" ");

//checking command dan password
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);
}
else if (tempMessage[0].toString().equalsIgnoreCase("andro-unlock") && tempMessage[1].toString().equals(tempPassword.toString())) {
//Toast.makeText(ListenSMSservice.this, "Menjalankan command andro-unlock", Toast.LENGTH_LONG).show();
openDatabase();
updateStatusNL();
Intent myIntent = new Intent(ListenSMSservice.this,LockScreenForm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle myKillerBundle = new Bundle();
myKillerBundle.putString("kill","1");
myIntent.putExtras(myKillerBundle);
getApplication().startActivity(myIntent);
}
}

如果 ListenSMS 服务收到了 andro-lock 命令,它将转到 lockscreen.java 并将转到 lockscreen.java with intent extra (putExtra) kill 当它收到命令 andro-unclock 时。 这是我的 lockscreen.java:

public class LockScreenForm extends Activity implements OnClickListener {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.lockscreen);

Bundle extra = getIntent().getExtras();
if (extra == null) {
return;
}
//Toast.makeText(this, extra.getString("kill"), 1).show();
else if(this.getIntent().getExtras().getString("kill").equalsIgnoreCase("1")) {
try {
Toast.makeText(this, "extra accepted", 1).show();
finish();
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, e.getMessage(), 1).show();
}

}

}
}

当我的 ListenSMS 服务收到“andro-unlock”命令时,我想关闭我的 locksreen.java,因此我将额外的 Intent “kill”放在 lockscreen.java 中并检查它。此 lockscreen.java 可以检查额外的 Intent 并可以显示“额外接受”的 toast ,但可以使用 finish() 关闭锁屏 Activity 。

目前我的假设是 Intent.FLAG_ACTIVITY_NEW_TASK 正在复制 locksreen Activity 。因此它将创建一个双锁屏 Activity ,并且完成方法正在关闭另一个由 Intent.FLAG_ACTIVITY_NEW_TASK 启动的 lockscreen.java。那只是假设。我错了吗?请指正。

有谁知道如何解决我的问题?我真的希望“andro-unlock”命令可以关闭锁屏 Activity 并需要它适用于我的大学期末项目。请帮忙。

最佳答案

来自 http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK :

When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in. See FLAG_ACTIVITY_MULTIPLE_TASK for a flag to disable this behavior. 

我想你的问题出在其他地方。我建议让锁屏 Activity 注册一个 BroadcastReceiver,然后在收到解锁消息时发送一个 BroadcastReceiver 将捕获的 Intent。然后 Activity 可以干净地退出。

关于java - 如何关闭此 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com