私はアプリケーションで実装された別のJavaクラスからAndroidのアクティビティを呼び出す方法についていくつかの記事を読んでいますが、私の問題には答えません。Javaクラスからアクティビティを開始するにはどうすればよいですか?
私は、アプリケーションに必要な永続的接続を処理する接続クラス(Connection.java
)を持っています。 この1つはSingletonパターンで構成されているので、毎回私は、接続情報または要求何かを必要とする私は:その後
final Connection conn = Connection.getConnection(getApplicationContext());
//... Some Code Here
conn.methodDoSomethingA();
、私が含まTabActivityを有する5アクティビティ(A、B、C、D、E)。 endConnection()
- - 今
public class Tab extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
final Connection conn = Connection.getConnection(getApplicationContext());
intent = new Intent().setClass(this, A.class);
spec = tabHost.newTabSpec("A")
.setIndicator("A", res.getDrawable(R.drawable.tab_A))
.setContent(intent);
tabHost.addTab(spec);
//... same for activities B, C, D and E
tabHost.setCurrentTab(0);
}
}
は、私は接続を終了するConnectionクラスにパブリックメソッドを持って、たとえば、Connectionクラスの中に複数回呼び出され、そこにソケットのタイムアウトであるか、サーバーからのカスタムメッセージを受信したときに通知するときセッションを終了する。
問題はここから始まる - endConnection()
が呼び出されたときには、ソケットを閉じてから、接続を知らせる活動(Theme.Dialog)が失われて示さなければなりません。 は、私は成功せず、これをしなかったことを達成するために:
public class Connection {
private static Connection connection = null;
private Context appContext = null;
private Connection(Context appContext) {
this.appContext = appContext;
}
public static Connection getConnection(Context appContext) {
if (connection == null)
return connection = new Connection(appContext);
else
return connection;
}
public void endConnection() {
// ... Close sockets and streams - SOME CODE HERE
// Show Disconnect Dialog
Intent myIntent = new Intent(appContext, Disconnect.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
appContext.startActivity(myIntent);
}
}
私もConnection.java
クラスの引数としてTabActivity
コンテキストを渡そうとしましたし、代わりにappContext
のそれを使用しますが、どちらか成功しませんでした。
私はこのエラーを取得しています:つまり
W/dalvikvm(9449): threadid=3: thread exiting with uncaught exception (group=0x2aaca228)
E/AndroidRuntime(9449): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(9449): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.Disconnect}: java.lang.NullPointerException
: - Javaクラスから活動を開始するにはどのように?
どのようなエラーが表示されますか? –
あなたはアクティビティフォームTabActivityを意図しますか? – iSun
マニフェストファイルであなたのすべてのアクティビティを宣言しましたか?あなたが持っているエラーのStackTraceを追加してください – Houcine