创建一个在手机上安装应用程序后仅触发一次的功能

时间:2014-09-13 15:21:03

标签: android cordova multi-device-hybrid-apps visual-studio-cordova

我正在使用ApacheCordova / Phonegap开发移动应用。 我需要一个功能,每次安装时都会向我发送一次短信。如果我把我的功能放在" DeviceReady"每次应用程序打开时都会运行它。 在安装应用程序或第一次运行时,是否有任何解决方案可以运行函数?

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:8)

检查它是否是第一次使用方法,然后在该方法确定它是第一次时执行操作。

例如:

isFirstTime()方法

private boolean isFirstTime()
    {
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    boolean ranBefore = preferences.getBoolean("RanBefore", false);
    if (!ranBefore) {

        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("RanBefore", true);
        editor.commit();
        // Send the SMS

        }
    return ranBefore;

    }

您可能希望将其添加到onCreate()

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    topLevelLayout = findViewById(R.id.top_layout);



   if (isFirstTime()) {
        topLevelLayout.setVisibility(View.INVISIBLE);
    }

答案 1 :(得分:6)

我在localstorage中添加了一个字段,并在启动时检查该字段是否存在。所以像这样:

if (window.localStorage.getItem("installed") == undefined) {
   /* run function */
   window.localStorage.setItem("installed", true);
}

编辑:我之所以比其他方法更喜欢这个原因,这个原因在iOS,WP等上也适用,而且不仅仅适用于android

答案 2 :(得分:0)

这应该是你要搜索的内容:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("firstTime", false)) 
{
// run your one time code
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}

答案 3 :(得分:0)

使用一些布尔值,如果它的true不调用该函数,那么函数示例就在这里

if(smssent!=true)
{

//call sms sending method

}


else

{

//just leave blank or else notify user using some toast message

}

注意: - boolean值存储在某些数据库中,如sharedprefernce或sqllite,files ....