Android Dev:应用启动时做的事情
Android Dev: Do things when App get started
我正在尝试为我的应用程序实施同步过程。内部 sqlite 数据库必须与远程 mysql 数据库同步。
这很好用,但现在我想实现,总是在应用程序启动时调用同步方法。
我只是将它放在 onCreate() 方法中,但现在的问题是,每次我使用 Intent 从更远的 Activity 返回时,都会调用同步方法。
抱歉我的英语不好,希望你们能理解。
提前致谢,
约书亚
解决方案 1
您可以扩展 Application,并在应用程序 class 中同步您在 onCreate()
中的数据。
package com.your.package
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Sync data here
}
}
现在打开 AndroidManifest.xml 并找到 <application>
标签。改成
<application
android:name=".MyApplication"
...>
解决方案 2
创建一个 SyncActivity,使其成为应用程序打开时的第一个 activity。在此处同步您的数据,然后通过
打开您的原始 activity
Intent intent = new Intent(SyncActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
这两个标志从堆栈中删除了这个 InitActivity,所以当用户按下后退按钮时,他们不会回到这个 activity。
我正在尝试为我的应用程序实施同步过程。内部 sqlite 数据库必须与远程 mysql 数据库同步。 这很好用,但现在我想实现,总是在应用程序启动时调用同步方法。 我只是将它放在 onCreate() 方法中,但现在的问题是,每次我使用 Intent 从更远的 Activity 返回时,都会调用同步方法。
抱歉我的英语不好,希望你们能理解。
提前致谢, 约书亚
解决方案 1
您可以扩展 Application,并在应用程序 class 中同步您在 onCreate()
中的数据。
package com.your.package
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Sync data here
}
}
现在打开 AndroidManifest.xml 并找到 <application>
标签。改成
<application
android:name=".MyApplication"
...>
解决方案 2
创建一个 SyncActivity,使其成为应用程序打开时的第一个 activity。在此处同步您的数据,然后通过
打开您的原始 activityIntent intent = new Intent(SyncActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
这两个标志从堆栈中删除了这个 InitActivity,所以当用户按下后退按钮时,他们不会回到这个 activity。