0

アプリケーションに別のクラスを開始させようとしています。

私が学ぼうとしているのは、別のクラスをバックグラウンドで実行する方法です。たとえば、ユーザーがアプリケーションを開いた場合、アプリケーションは実行されたままになります。

インテントを使って別のクラスを開こうとしたらうまくいくと思いました。エミュレータでアプリケーションを実行すると、クラッシュするだけです...

これがオープニングです:

package omg.justry;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
    //super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);
    public void onCreate(Bundle savedInstanceState) {
        Intent openStartingPoint = new Intent("omg.justtry.PartF**king2");
        startActivity(openStartingPoint);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

これが「PartF**king2」クラスです。

package omg.justry;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;

public class PartF**king2 extends Activity{
public void onCreate(Bundle savedInstanceState) {
    Context context = getApplicationContext();
    CharSequence text = "Hello toast!";
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
}
    }

問題は、Eclipseはエラーを表示しないということです。アプリをエクスポートし、adbを使用してエミュレーターにインストールしました。

ここに表示されているように、 AndroidManifestにもクラスを追加しました。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="omg.justry"
android:versionCode="1"
android:versionName="1.0" >

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <activity android:name="PartF**king2"></activity>
</application>

私がそれを見た今、それはマニフェストだと思いますが、私が何をしても、エラーが発生するか、Eclipseが何も説明せずにクラッシュします。

4

1 に答える 1

1

すべてのクラスで、onCreate(Bundle savedInstanceState)メソッドには次のものが含まれている必要があります

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

スーパーは絶対に必須であり、setContentViewはアクティビティのレイアウトを定義します。

また、アクティビティを「バックグラウンドで実行」することはできません。Androidチュートリアルを読むことから始めれば、何をすべきかについての手がかりが得られます。

于 2012-09-15T21:11:35.050 に答える