如何在Android中初始化parse.com代码

时间:2014-01-28 15:54:10

标签: android parse-platform

我正在尝试使用Parse.com sdk,我无法让我的Parse代码初始化。我不知道该把它放在哪里,我需要帮助,因为我不知道是否需要把它放在我的主要部分或者我需要把它放在其他地方。

这是我在不同类中添加的几段代码

我使用示例

创建了这个
package com.example.musicdroid;
import com.parse.Parse;
import com.parse.ParseACL; 
import com.parse.ParseUser;
import android.app.Application;

public class ParseApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();

    // Add your initialization code here
    Parse.initialize(this, "XXX", "XXX");

    ParseUser.enableAutomaticUser();
    ParseACL defaultACL = new ParseACL();


    ParseACL.setDefaultACL(defaultACL, true);
}

}

这是我原来的地方

import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Main extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String[] choices = { "Rock", "Metal", "Rap", "My Favorites" };
    setListAdapter(new ArrayAdapter<String>(this, R.layout.main,
            R.id.music, choices));
}

protected void onListItemClick(ListView l, View v, int position, long id) {
    switch (position) {
    case 0:
        try {
            startActivity(new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("spotify:user:warnermusicus:playlist:3DRD3GUpQSjK2rryIRVOPS")));
        } catch (ActivityNotFoundException e) {
            final Intent intent = new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=com.spotify.mobile.android.ui"));
            startActivity(intent);
        }
        break;
    case 1:
        try {
            startActivity(new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("spotify:user:warnermusicus:playlist:6iIDHF5tBqzS6uZjMEzBdQ")));
        } catch (ActivityNotFoundException e) {
            final Intent intent = new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=com.spotify.mobile.android.ui"));
            startActivity(intent);
        }
        break;
    case 2:
        try {
            startActivity(new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("spotify:user:digsterdeutschland:playlist:5pvJLjAhcKCHXGOb7pEbBZ")));
        } catch (ActivityNotFoundException e) {
            final Intent intent = new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=com.spotify.mobile.android.ui"));
            startActivity(intent);
        }
        break;
    case 3:
        try {
            startActivity(new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("spotify:user:digsterdeutschland:playlist:1hYWCuFv5Eav9yIZXHwnpd")));
        } catch (ActivityNotFoundException e) {
            final Intent intent = new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=com.spotify.mobile.android.ui"));
            startActivity(intent);
        }
        break;
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

我有另一个地方。这是主菜单

package com.example.musicdroid;
import com.parse.Parse;
import com.parse.ParseAnalytics;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

 public class MainMenu extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String[] choices = { "Main", "Bios", "Artist Search", "How To Use" };
    setListAdapter(new ArrayAdapter<String>(this, R.layout.menu, R.id.Menu,
            choices));
}

protected void onListItemClick(ListView l, View v, int position, long id) {
    switch (position) {
    case 0:
        startActivity(new Intent(MainMenu.this, Main.class));
        break;
    case 1:
        startActivity(new Intent(MainMenu.this, Bios.class));
        break;
    case 2:
        startActivity(new Intent(MainMenu.this, Search.class));
        break;
    case 3:
        startActivity(new Intent(MainMenu.this, How.class));
        break;
    }
}
}

清单代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.musicdroid"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
    android:name="com.example.musicdroid.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.musicdroid.permission.C2D_MESSAGE" />

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/fiery_music_symbol"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo" >
    <activity
        android:name="com.example.musicdroid.Main"
        android:label="@string/app_name" >
    </activity>
    <activity android:name=".MainMenu" >
    </activity>
    <activity android:name=".Bios" >
    </activity>
    <activity android:name=".Search" >
    </activity>
    <activity android:name=".How" >
    </activity>
    <activity android:name=".LoginSignupActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Welcome" >
    </activity>

    <service android:name="com.parse.PushService" />

    <receiver android:name="com.parse.ParseBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.example.musicdroid" />
        </intent-filter>
    </receiver>
</application>

</manifest>

5 个答案:

答案 0 :(得分:3)

在Manifest File中添加扩展Application的类

<application android:name="your packagename.ParseApplication" 

 android:icon="@drawable/icon"  

 android:label="@string/app_name">

我希望这有帮助..

答案 1 :(得分:1)

只需将它放到您的MainActivity.java中,然后使用ParseApplication类onCreate中的所有语句进行onCreate。然后你可以删除这个类(ParseApplication.java) 它应该正常工作。

希望有所帮助

答案 2 :(得分:0)

在setContentView调用之后,您应该始终将初始化调用放在ACTIVITY的onCreate方法中。像这样:

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_name_here);

    Parse.initialize(this, "ApplicationKey", "ClientKey);
    // Rest of your code follows...
}

一旦你拥有那条线,你就可以进行任何Parse交易。

答案 3 :(得分:0)

假设您不能拥有自定义应用类(例如:Android库)

您可以使用以下程序

调用初始化如下:

if (ParseCheck.isParseInitialized())
  Parse.initialize(context, PARSE.AB4FUN_APP.APPLICATION_ID, PARSE.AB4FUN_APP.CLIENT_KEY);

创建如下所示的实用程序类(注意包)

package com.parse;

public class ParseCheck {
  public static boolean isParseInitialized(){
    return Parse.isInitialized();
  }
}

答案 4 :(得分:0)

import android.app.Application; 
import com.parse.Parse; 

public class MyApp extends Application { 

    @Override public void onCreate() { 
        super.onCreate();

        Parse.initialize(this, ApplicationID, ClientKey);
    }
} 
Then, add the following to your <application> in AndroidManifest.xml:
name=".MyApp"