因此,我遵循了Parse
SDK网站的《快速入门指南》中的说明。该应用程序第一次运行良好。但是,当我最小化该应用程序并从任务切换器再次运行它时,它会强制关闭。
该错误对我来说没有任何意义。Logcat-
05-09 08:57:40.611 19419-19419/com.example.shubhamkanodia.bookmybook E/CrashReporting﹕ ParseCrashReporting caught a RuntimeException exception for com.example.shubhamkanodia.bookmybook. Building report.
05-09 08:57:40.626 19419-19419/com.example.shubhamkanodia.bookmybook E/CrashReporting﹕ Handling exception for crash
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shubhamkanodia.bookmybook/com.example.shubhamkanodia.bookmybook.MainActivity}: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
at android.app.ActivityThread.access$900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
at com.parse.Parse.enableLocalDatastore(Parse.java:104)
at com.example.shubhamkanodia.bookmybook.MainActivity.onCreate(MainActivity.java:21)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
at android.app.ActivityThread.access$900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Mainactivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!ParseCrashReporting.isCrashReportingEnabled())
ParseCrashReporting.enable(this);
Parse.enableLocalDatastore(this); //Its already before initialize
Parse.initialize(this, "XXX", "XXX");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseAnalytics.trackAppOpenedInBackground(getIntent());
}
您可以有一个单独的类来执行初始化工作。因此,创建一个ParseApplication
可扩展的类Application
。
public class ParseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ParseCrashReporting.enable(this);
Parse.enableLocalDatastore(this);
Parse.initialize(this, "xxx", "xxx");
}
}
然后在AndroidManifest.xml中,将ParseApplication
类添加到Application
<application
android:name="com.example.parsetry.ParseApplication" // you should replace this based on your package
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Parse 富文本解析器 1.5.3 相同点: 二者都能解析HTML字符串 不同点: 对于轻量、简单的字符串,rich-text性能更好 对于复杂的字符串,使用parse组件效果更好,有更多的自定义属性和效果 总结:如果是简单的场景,比如一段简单的文字和图片内容,可以优先使用rich-text组件,在文章内容,商品详情等复杂的文本详情,可以优先使用parse组件。 提示 此组件源于开源的优秀作品P
parse() 方法 解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。 语法: Date.parse( dateString ) 参数说明: dateString -- 表示日期和时间的字符串 返回值: 指定的日期和时间据 1970/1/1 午夜( GMT 时间 )之间的毫秒数。 说明: Date.parse() 是 Date 对象的静态方法。 一般采用 Dat
描述 (Description) 它通过传递响应对象返回集合的数据,并以JSON格式表示数据。 语法 (Syntax) collection.parse(response, options) 参数 (Parameters) response - 它将模型属性数组返回到集合。 options - 它包含true作为表示JSON格式数据的选项。 例子 (Example) <!DOCTYPE html
描述 (Description) 它由服务器使用,并通过传递响应对象返回模型的数据,并以JSON格式表示数据。 语法 (Syntax) model.parse(response,options) 参数 (Parameters) response - 使用响应原始对象传递,并返回要在模型上设置的属性。 options - 它包含true作为表示JSON格式数据的选项。 例子 (Example) <
import "text/template/parse" Package parse builds parse trees for templates as defined by text/template and html/template. Clients should use those packages to construct templates rather than this one
使用DOM4J的步骤 以下是使用DOM4J Parser解析文档时使用的步骤。 导入与XML相关的包。 创建一个SAXReader。 从文件或流创建文档。 通过调用document.selectNodes()获取使用XPath Expression获取所需的节点 提取根元素。 迭代节点列表。 检查属性。 检查子元素。 Import XML-related packages import java.