gpt4 book ai didi

android - 启动服务后立即调用 finish() 的正确方法

转载 作者:太空狗 更新时间:2023-10-29 13:12:16 30 4
gpt4 key购买 nike

我喜欢在启动服务后立即退出我的应用程序。

下面的代码使 Activity 在服务启动之前完成。如何设置监听器在服务启动时提示我?

btn  = (ImageButton) findViewById(R.id.button );
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startService(new Intent(MainActivity.this, MyService.class));

//I want to exit the activity here.
finish(); // this exits the activity before the service is started

}
});

最佳答案

以下是我使用的代码,基于@Er.Arjunsaini 的提议

在 ACTIVITY 文件中,我注册收听“Exit App”广播。

private final BroadcastReceiver exitAppReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//activity exits when "exit app" broadcast received.
finish();
}
};


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//REGISTER TO LISTEN FOR THE BROADCAST
LocalBroadcastManager.getInstance(this).
registerReceiver(exitAppReceiver, new IntentFilter(getString(R.string.exit_app)));

btn = (ImageButton) findViewById(R.id.my_button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startService( new Intent(this, MyService.class));

}
});
}

@Override
public void onDestroy() {

//UNREGISTER THE RECEIVER
LocalBroadcastManager.getInstance(this).
unregisterReceiver(exitFloatingWindowReceiver);
super.onDestroy();
}

在 SERVICE 文件上,我发送一个“退出 APP”广播。

@Override
public void onCreate() {
super.onCreate();

//... do the rest of the Service initializing

//CLOSE ACTIVITY
LocalBroadcastManager.getInstance(this).
sendBroadcast(new Intent(getString(R.string.exit_app)));
}

关于android - 启动服务后立即调用 finish() 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39051056/

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