gpt4 book ai didi

android - 重定向到设置菜单后停止 Intent

转载 作者:太空狗 更新时间:2023-10-29 16:09:27 25 4
gpt4 key购买 nike

我目前正在开发一个在 googleMaps View 上使用 GPS 位置的应用程序。我检查 GPS 功能是否被激活,如果没有,我将用户重定向到设置菜单。

  1. 如果我点击后退按钮(通过激活或不激活 GPS),我会返回到我的应用程序 - 工作正常
  2. 如果我点击主页按钮,然后重新启动我的应用程序,我将被直接重定向到 GPS 设置菜单 => 我的 Intent 仍然存在。
    问题是我不知道什么时候终止这个 Intent 。

这是我的代码中有罪的部分:

    Button btnLocateMe = (Button)findViewById(Rsendlocationinfo.id.locateme);
btnLocateMe.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Context context = getApplicationContext();

objgps = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

//Check GPS configuration
if ( !objgps.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {

//Warn the user that its GPS is not activated
Toast gpsActivationCheck = Toast.makeText(context, "GPS deactivated - Touch to open the GPS settings.", Toast.LENGTH_LONG);
gpsActivationCheck.show();

//Open the GPS settings menu on the next onTouch event
//by implementing directly the listener method - dirt manner
mapView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {

//And here is my problem - How to kill this process
startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);

return false;
}
});
}
else {
//Location acquisition.
}

我在 onStop()、onDestroy()、onPause() 中尝试了一些 stopself()、finish()、onDestroy()、onPause()...它崩溃或什么都不做...你能帮我一下吗?

最佳答案

好的,我终于找到了。
我将尝试清楚地解释行为上的差异:

  1. 旧行为:

    • 启动应用程序
    • Google map Activity 开始
    • 用户接受重定向到设置菜单以激活 GPS
    • 已显示设置菜单
    • 用户点击“主页”按钮
    • 用户重新启动应用程序=> 显示设置菜单,因为它是应用程序历史堆栈中的最新 Intent 。

启动这个 Intent 的代码是:

startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
  1. 新行为:

    • 启动应用程序
    • Google map Activity 开始
    • 用户接受重定向到设置菜单以激活 GPS
    • 已显示设置菜单
    • 用户点击“主页”按钮
    • 用户重新启动应用程序=> 显示了 Google map ,而不是设置菜单,因为我在重定向 Intent 中添加了标志 FLAG_ACTIVITY_NO_HISTORY。

我的代码现在是:

Intent intentRedirectionGPSSettings = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intentRedirectionGPSSettings.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

startActivityForResult(intentRedirectionGPSSettings, 0);

我试着解释得很好。manifest.xml 中的标签“android:noHistory(true)”适用于 Activity ,但标志 FLAG_ACTIVITY_NO_HISTORY 是一个不错的选择,因为它适用于 Intent 。

谢谢你的帮助。

关于android - 重定向到设置菜单后停止 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566551/

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