嘿,我想知道如何在我的一个活动中只在refreshChannel();
中运行一个方法,onCreate
,直到应用程序被终止或重新启动?
答案 0 :(得分:6)
您可以扩展Application
并在自定义应用程序类的onCreate
中运行该方法。这仅在每次应用程序启动时运行一次。
例如:
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// Your methods here...
}
}
请注意,这应该不能长时间运行。如果需要一些时间,请在AsyncTask
。
最后,你需要告诉Android你有一个自定义的Application类。您可以在清单中通过引用android:name
标记的application
属性中的应用类来执行此操作:
<manifest ... >
<application
android:name=".MyApp"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity>
...
</activity>
</application>
</manifest>
答案 1 :(得分:2)
您可以继承应用程序类。然后覆盖Application类的子类中的onCreate方法。将字段添加到应用程序子类。
public class SubApplication extends Application {
public boolean hasRefreshed;
@Override
public void onCreate() {
super.onCreate();
hasRefreshed=false;
}
}
然后当你执行你的活动时:
SubApplication app = (SubApplication ) context
.getApplicationContext();
if(app.hasRefreshed){
//do nothing
}else{
refresh();
app.hasRefreshed=true;
}
最后,将此行添加到清单中,以便系统知道使用子类。
<application
android:name=".SubApplication "
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity>
...
</activity>
</application>