gpt4 book ai didi

Android 启动系统设置而不是我的应用

转载 作者:IT老高 更新时间:2023-10-28 23:25:26 25 4
gpt4 key购买 nike

出于某种原因,每当我(尝试)启动我的应用程序时,手机都会决定启动系统设置而不是我的“主要 Activity ”。是的,我指的是“Android 系统设置”,而不是我的应用程序中的内容。

这只发生在我的手机上,我想这可能与我决定使用 Eclipse 的新版本重新启动时我的应用刚刚打开系统设置有关。

可以从 Eclipse 中启动应用程序,但是当我从应用程序导航返回时,它会返回到系统设置而不是主屏幕,就好像首先启动了设置 Activity ,然后是我的 Activity 。如果我然后从手机启动应用程序,我得到的只是系统设置。

应用程序正在监听特定 URL 子字符串的 VIEW 操作,当我使用匹配的 URL 启动应用程序时,我得到的结果与我从 Eclipse 启动它时的结果相同,应用程序启动,但是当我返回时我返回到设置。

我已经尝试在谷歌上搜索这个问题,但我只能找到一些关于 Android saving state 的信息当应用程序被杀死时,但没有任何关于如何重置此状态的信息。我试过卸载应用程序,杀死系统设置,重启手机,重新安装,清除应用程序数据..没有运气..

不管怎样,这是 list 中我的主要 Activity 的定义,

<activity android:name=".HomeActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:pathPrefix="/isak-web-mobile/smart/" android:scheme="http" android:host="*"></data>
</intent-filter>
</activity>

这是我尝试启动应用程序时的 logcat 行,与任何地方的任何设置无关。

I/ActivityManager( 1301): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=se.opencare.isak/.HomeActivity }

当我从 Eclipse 启动时,我也得到了这一行(正如人们所期望的那样),

I/ActivityManager( 1301): Start proc se.opencare.isak for activity se.opencare.isak/.HomeActivity: pid=23068 uid=10163 gids={3003, 1007, 1015}

如果手机是运行 2.2.1 的 HTC Desire Z。

目前,这是我的 HomeActivity,

public class HomeActivity extends Activity {
public static final String TAG = "HomeActivity";

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult(" + requestCode + ", " + resultCode + ", " + data + ")");
super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate(" + savedInstanceState + ")");
super.onCreate(savedInstanceState);
}

@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy()");
super.onDestroy();
}

@Override
protected void onPause() {
Log.d(TAG, "onPause()");
super.onPause();
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
Log.d(TAG, "onPostCreate(" + savedInstanceState + ")");
super.onPostCreate(savedInstanceState);
}

@Override
protected void onPostResume() {
Log.d(TAG, "onPostResume()");
super.onPostResume();
}

@Override
protected void onRestart() {
Log.d(TAG, "onRestart()");
super.onRestart();
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.d(TAG, "onRestoreInstanceState(" + savedInstanceState + ")");
super.onRestoreInstanceState(savedInstanceState);
}

@Override
protected void onResume() {
Log.d(TAG, "onResume()");
super.onResume();
}

@Override
protected void onStart() {
Log.d(TAG, "onStart()");
super.onStart();
}

@Override
protected void onStop() {
Log.d(TAG, "onStop()");
super.onStop();
}

@Override
protected void onUserLeaveHint() {
Log.d(TAG, "onUserLeaveHint()");
super.onUserLeaveHint();
}
}

没有(上述)内容写入日志。

阅读 Blundell 的回复后,我尝试更改 launchMode/clearTaskOnLaunch 设置,结果如下,

  • 情况 A - 我删除了 launchMode 和 clearTaskOnLaunch: 与之前相同的问题
  • 情况 B - 我删除 clearTaskOnLaunch 并保留 launchMode="singleInstance":另一个问题
    • 打开应用 - 我的 HomeActivity 正在显示
    • 单击一个按钮以在我的应用中打开另一个 Activity - 它会按原样打开
    • 点击系统后退按钮 - 它让我回到系统设置
    • 再次点击系统返回按钮 - 我返回到我的 HomeActivity
    • 再次单击返回按钮将我带回 Android 主屏幕
  • 情况 C - 我只删除了 launchMode 并保留 clearTaskOnLaunch: 与以前相同的问题
  • 情况 D - 我删除 clearTaskOnLaunch 并设置 launchMode="singleInstance": 与情况 B 相同

最佳答案

您没有从 HomeActivity 调用 setContentView() (根据您添加的代码)。当它不存在时,不同的设备表现不同,比如在模拟器上你会看到“应用程序未安装在你的手机上”。尝试设置内容 View 。

关于Android 启动系统设置而不是我的应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261867/

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