2012-11-16 2 views
0

의도를 수신하면 액티비티를 시작/다시 시작하고 싶은 브로드 캐스트 리시버가 있습니다. 활동을 시작할 때까지 모든 것이 잘 작동하고, 의도 등이 생깁니다.브로드 캐스트 리시버에서 액티비티를 시작할 수 없습니다.

하지만 내 활동을 시작할 수 없습니다.

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

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

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".WebViewActivity" 
     android:theme="@android:style/Theme.NoTitleBar" > 
    </activity> 
    <activity 
     android:name="com.imgzine.testing.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> 
다음

내가 시작하는 데 노력하고있어 활동 :

package com.imgzine.testing; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 

public class WebViewActivity extends Activity { 

private WebView webView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 

    Log.w("DEBUG", "Hello, I'm a webview"); 

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("http://www.google.com"); 

} 

} 

를 그리고 여기에서 내 방송 수신기의 일부입니다 여기

내 안드로이드 매니페스트입니다 활동을 시작하려고합니다 :

    Log.w("DEBUG", "Hello, I receive."); 
     Intent webviewintent = new Intent(webviewcontext, 
     WebViewActivity.class); 
     webviewintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     webviewintent.setAction(Intent.ACTION_MAIN); 
     webviewintent.addCategory(Intent.CATEGORY_LAUNCHER); 
     webviewcontext.startActivity(webviewintent); 

여기서 webviewcontext가 내 주요 활동의 컨텍스트임을 명확히해야하며 여기서는 브로드 캐스트 리시버의 생성자를 통해 전달합니다. 여기에 ..

BroadcastReceiver mReceiver = new MyPhoneReceiver(context); 
registerReceiver(mReceiver, filter); 

그러나 활동이 시작되지 않습니다 내가 얻을 로그입니다 : 나는 주요 활동에 브로드 캐스트 리시버를 만들

11-16 12:47:36.144: W/DEBUG(818): Hello, I receive. 
11-16 12:47:36.144: I/ActivityManager(58): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.imgzine.testing/.WebViewActivity } 

어떤 아이디어가 더 그 환영합니다.

미리 감사드립니다.

답변

0
Intent intent = new Intent(webviewcontext,WebViewActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
webviewcontext.startActivity(intent); 
0

문제는 문맥이었습니다.

다음 작품 :

webviewcontext = context.getApplicationContext(); 

(문맥 내가 onReceive에서 얻을 맥락이다)

관련 문제