gpt4 book ai didi

android - 是否有一个 Android intent-filter 在用户切换到应用程序时触发?

转载 作者:行者123 更新时间:2023-11-30 03:23:57 25 4
gpt4 key购买 nike

我对配置 AndroidManifest.xml 很陌生Android 应用程序中的文件,我正在构建的应用程序使用 Phonegap 和 Javascript 和 HTML,而不是 native 代码。

我的 Javascript 代码中有一些我想在用户每次“打开”应用程序时触发的操作。我发现“开放”的概念比我最初理解的要多。如果用户打开应用程序,然后切换到另一个应用程序,然后又回到第一个应用程序,那么第一个应用程序实际上仍在后台运行,所以它没有启动。我想将其描述为“切换”回第一个应用会更准确。

我的问题是我有一些 Javascript 在用户每次切换到我的应用程序时运行,无论是第一次打开它还是在后台运行。我不需要做任何特定的配置来实现这一点,这似乎是默认行为。

但是,我需要执行的某些操作基于 AndroidManifest.xml 中的设置,但它们只会在应用程序首次打开时执行,不会在用户切换回当前在后台运行的应用程序时执行。具体来说,我想根据用户是否从电子邮件中的链接打开应用程序来执行操作,为此我设置了 <intent-filter>。 .

有没有一种方法可以监听用户何时通过电子邮件中的链接启动我的应用程序,而不管该应用程序是否已在后台运行?

我认为这可能是相关的,所以这是我的 <activity>在我的标签 AndroidManifest.xml “监听”通过 URL 启动的应用程序:

    <activity
android:name="com.xxxxxxx.xxxxxxx.MainActivity"
android:label="@string/app_name" >
<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" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="xxxxxxx.com"
android:scheme="http" />
<data
android:host="xxxxxxx.com"
android:scheme="https" />
</intent-filter>
</activity>

这是onCreate()在我的 MainActivity.java 中运行文件:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl(Config.getStartUrl(), 3000);

adView = new AdView(this, AdSize.BANNER, AdMob_Ad_Unit);
LinearLayout layout = super.root;
layout.addView(adView);
AdRequest request = new AdRequest();
adView.loadAd(request);
}

最佳答案

将其放入您的启动器 Activity 中:

//this method is called every time the Activity is Created or Re-Created
//we check for null to see if the activity was only Created instead of Recreated
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState == null){
myMethod(getIntent());
}
}

//This method will be called only when the Activity is already created and receives
//a new Intent
@Override
protected void onNewIntent(Intent it){
super.onNewIntent(it);
myMethod(it)
}

private void myMethod(Intent intent){
if(intent.getAction().equals("put here the WebIntent action string or URL as they call it"){
//your code here
}
}

关于android - 是否有一个 Android intent-filter 在用户切换到应用程序时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583665/

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