嘿,我想知道如何在我的一个活动中只运行一次方法refreshChannel();
,onCreate
直到应用程序被杀死或重新启动?
问问题
9004 次
2 回答
11
您可以在自定义应用程序类中扩展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>
于 2013-10-16T22:29:45.517 回答
2
您可以子类化应用程序类。然后重写Application类的子类中的onCreate方法。向应用程序子类添加一个字段。
public class SubApplication extends Application {
public boolean hasRefreshed;
@Override
public void onCreate() {
super.onCreate();
hasRefreshed=false;
}
}
然后,当您执行 Activity 时:
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>
于 2013-10-16T22:31:41.943 回答